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