anchor.diff:    Re_BufSz  = 0
     Db_BufSz  = 0
     Int_BufSz  = 0
  -  IF ( ALLOCATED(OutData%S) ) THEN
  -  ALLOCATE(mask3(SIZE(OutData%S,1),SIZE(OutData%S,2),SIZE(OutData%S,3))); mask3 = .TRUE.
  -    OutData%S = UNPACK(ReKiBuf( Re_Xferred:Re_Xferred+(SIZE(OutData%S))-1 ),mask3,OutData%S)
  +  IF ( ALLOCATED(OutData%Stif0) ) THEN
  +  ALLOCATE(mask3(SIZE(OutData%Stif0,1),SIZE(OutData%Stif0,2),SIZE(OutData%Stif0,3))); mask3 = .TRUE.
  +    OutData%Stif0 = UNPACK(ReKiBuf( Re_Xferred:Re_Xferred+(SIZE(OutData%Stif0))-1 ),mask3,OutData%Stif0)
     DEALLOCATE(mask3)
  -    Re_Xferred   = Re_Xferred   + SIZE(OutData%S)
  +    Re_Xferred   = Re_Xferred   + SIZE(OutData%Stif0)
     ENDIF
     IF ( ALLOCATED(OutData%M) ) THEN
     ALLOCATE(mask3(SIZE(OutData%M,1),SIZE(OutData%M,2),SIZE(OutData%M,3))); mask3 = .TRUE.
  
positive.code:   DEALLOCATE(mask3)
      Re_Xferred   = Re_Xferred   + SIZE(OutData%M)
    ENDIF
    OutData%num_elem = IntKiBuf ( Int_Xferred )
    Int_Xferred   = Int_Xferred   + 1
    OutData%order = IntKiBuf ( Int_Xferred )
    Int_Xferred   = Int_Xferred   + 1
    OutData%dof_node = IntKiBuf ( Int_Xferred )
    Int_Xferred   = Int_Xferred   + 1
    OutData%num_node = IntKiBuf ( Int_Xferred )
    Int_Xferred   = Int_Xferred   + 1
    OutData%num_dof = IntKiBuf ( Int_Xferred )
    Int_Xferred   = Int_Xferred   + 1
    IF ( ALLOCATED(OutData%gll_w) ) THEN
    ALLOCATE(mask1(SIZE(OutData%gll_w,1))); mask1 = .TRUE.
  
negative.code:   Re_BufSz  = 0
    Db_BufSz  = 0
    Int_BufSz  = 0
    Re_BufSz    = Re_BufSz    + SIZE( InData%Stif0 )  ! Stif0 
    Re_BufSz    = Re_BufSz    + SIZE( InData%M )  ! M 
    Int_BufSz  = Int_BufSz  + 1  ! elem_total
    Int_BufSz  = Int_BufSz  + 1  ! order
    Int_BufSz  = Int_BufSz  + 1  ! dof_node
    Int_BufSz  = Int_BufSz  + 1  ! node_total
    Int_BufSz  = Int_BufSz  + 1  ! dof_total
    Int_BufSz  = Int_BufSz  + 1  ! node_elem
    Int_BufSz  = Int_BufSz  + 1  ! dof_elem
    Re_BufSz    = Re_BufSz    + SIZE( InData%gll_w )  ! gll_w 
    Re_BufSz    = Re_BufSz    + SIZE( InData%gll_p )  ! gll_p 
    Re_BufSz    = Re_BufSz    + SIZE( InData%gll_deriv )  ! gll_deriv 
    Re_BufSz    = Re_BufSz    + SIZE( InData%uuN0 )  ! uuN0 
    Re_BufSz    = Re_BufSz    + SIZE( InData%det_jac )  ! det_jac 
    Re_BufSz    = Re_BufSz    + SIZE( InData%bc )  ! bc 
    IF ( Re_BufSz  .GT. 0 ) ALLOCATE( ReKiBuf(  Re_BufSz  ) )
    IF ( Db_BufSz  .GT. 0 ) ALLOCATE( DbKiBuf(  Db_BufSz  ) )
    IF ( Int_BufSz .GT. 0 ) ALLOCATE( IntKiBuf( Int_BufSz ) )
    IF ( ALLOCATED(InData%Stif0) ) THEN
      IF ( .NOT. OnlySize ) ReKiBuf ( Re_Xferred:Re_Xferred+(SIZE(InData%Stif0))-1 ) =  PACK(InData%Stif0 ,.TRUE.)
      Re_Xferred   = Re_Xferred   + SIZE(InData%Stif0)
    ENDIF
    IF ( ALLOCATED(InData%M) ) THEN
      IF ( .NOT. OnlySize ) ReKiBuf ( Re_Xferred:Re_Xferred+(SIZE(InData%M))-1 ) =  PACK(InData%M ,.TRUE.)
      Re_Xferred   = Re_Xferred   + SIZE(InData%M)
    ENDIF
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%elem_total )
    Int_Xferred   = Int_Xferred   + 1
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%order )
    Int_Xferred   = Int_Xferred   + 1
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%dof_node )
    Int_Xferred   = Int_Xferred   + 1
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%node_total )
    Int_Xferred   = Int_Xferred   + 1
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%dof_total )
    Int_Xferred   = Int_Xferred   + 1
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%node_elem )
    Int_Xferred   = Int_Xferred   + 1
    IF ( .NOT. OnlySize ) IntKiBuf ( Int_Xferred:Int_Xferred+(1)-1 ) = (InData%dof_elem )
    Int_Xferred   = Int_Xferred   + 1
    IF ( ALLOCATED(InData%gll_w) ) THEN
      IF ( .NOT. OnlySize ) ReKiBuf ( Re_Xferred:Re_Xferred+(SIZE(InData%gll_w))-1 ) =  PACK(InData%gll_w ,.TRUE.)
  