anchor.diff:      if (me == 1) then
         obj[2]%int_k4(::2) = [ 15, 13, 11]
   
  -      obj[2]%int_k1(::2) = [INT(-15, 1), INT(-13, 1), INT(-11, 1)] 
  +      obj[2]%int_k1(::2) = [INT(-15, 1), INT(-13, 1), INT(-11, 1)]
   
         obj[2]%real_k8(::2) = [REAL(1.3, 8), REAL(1.5, 8), REAL(1.7, 8)]
   
  
positive.code:     sync all
      if (me == 2) then
        print *, obj%int_scal_k4
        if (obj%int_scal_k4 /= int_scal_k4) error stop 'send scalar int kind=1 to kind=4 to image 2 failed.'
  
        print *, obj%int_scal_k1
        if (obj%int_scal_k1 /= int_scal_k1) error stop 'send scalar int kind=4 to kind=1 to image 2 failed.'
  
        print *, obj%int_k4
        if (any(obj%int_k4 /= int_k4)) error stop 'send int kind=1 to kind=4 to image 2 failed.'
  
        print *, obj%int_k1
        if (any(obj%int_k1 /= int_k1)) error stop 'send int kind=4 to kind=1 to image 2 failed.'
  
        print *, obj%real_scal_k8
        if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance4to8) error stop 'send scalar real kind=4 to kind=8 to image 2 failed.'
  
        print *, obj%real_scal_k4
        if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) error stop 'send scalar real kind=8 to kind=4 to image 2 failed.'
  
        print *, obj%real_k8
        if (any(abs(obj%real_k8 - real_k8) > tolerance4to8)) error stop 'send real kind=4 to kind=8 to image 2 failed.'
  
        print *, obj%real_k4
        if (any(abs(obj%real_k4 - real_k4) > tolerance4)) error stop 'send real kind=8 to kind=4 to image 2 failed.'
      end if
  
      ! Scalar to array replication
  
negative.code:     sync all
      if (me == 2) then
        print *, obj%int_k4
        if (any(obj%int_k4 /= [15, -1, 13, -1, 11])) &
          call print_and_register( 'strided send int kind=4 to kind=4 to image 2 failed')
  
        print *, obj%int_k1
        if (any(obj%int_k1 /= [INT(-15, 1), INT(-1, 1), INT(-13, 1), INT(-1, 1), INT(-11, 1)])) &
          call print_and_register( 'strided send int kind=1 to kind=1 to image 2 failed')
  
        print *, obj%real_k8
        if (any(abs(obj%real_k8 - [1.3, -1.0, 1.5, -1.0, 1.7]) > tolerance8)) &
          call print_and_register( 'strided send real kind=8 to kind=8 to image 2 failed')
  
        print *, obj%real_k4
        if (any(abs(obj%real_k4 - [REAL(1.3, 4), REAL(-1.0, 4), REAL(1.5, 4), REAL(-1.0, 4), REAL(1.7, 4)]) > tolerance4)) &
          call print_and_register( 'strided send real kind=4 to kind=4 to image 2 failed')
      end if
  
      ! now with strides and kind conversion
      sync all
      obj%int_k4 = -1
  