anchor.diff:     CHARACTER(*),    INTENT(  OUT) :: ErrMsg
   ! Local 
      INTEGER(IntKi)                 :: i,i1,i2,i3,i4,i5,j,k
  +   INTEGER(IntKi)                 :: i1_l,i2_l,i3_l,i4_l,i5_l  ! lower bounds for an array dimension
  +   INTEGER(IntKi)                 :: i1_u,i2_u,i3_u,i4_u,i5_u  ! upper bounds for an array dimension
   ! 
      ErrStat = ErrID_None
      ErrMsg  = ""
   IF (ALLOCATED(SrcParamData%Stif0)) THEN
  -   i1 = SIZE(SrcParamData%Stif0,1)
  -   i2 = SIZE(SrcParamData%Stif0,2)
  -   i3 = SIZE(SrcParamData%Stif0,3)
  +   i1_l = LBOUND(SrcParamData%Stif0,1)
  +   i1_u = UBOUND(SrcParamData%Stif0,1)
  +   i2_l = LBOUND(SrcParamData%Stif0,2)
  +   i2_u = UBOUND(SrcParamData%Stif0,2)
  +   i3_l = LBOUND(SrcParamData%Stif0,3)
  +   i3_u = UBOUND(SrcParamData%Stif0,3)
      IF (.NOT.ALLOCATED(DstParamData%Stif0)) THEN 
  -      ALLOCATE(DstParamData%Stif0(i1,i2,i3),STAT=ErrStat)
  +      ALLOCATE(DstParamData%Stif0(i1_l:i1_u,i2_l:i2_u,i3_l:i3_u),STAT=ErrStat)
         IF (ErrStat /= 0) THEN 
            ErrStat = ErrID_Fatal 
            ErrMsg = 'BDyn_CopyParam: Error allocating DstParamData%Stif0.'
  
positive.code:    CHARACTER(*),    INTENT(  OUT) :: ErrMsg
  ! Local 
     INTEGER(IntKi)                 :: i,i1,i2,i3,i4,i5,j,k
  ! 
     ErrStat = ErrID_None
     ErrMsg  = ""
  
negative.code:    DstParamData%det_jac = SrcParamData%det_jac
  ENDIF
  IF (ALLOCATED(SrcParamData%bc)) THEN
     i1_l = LBOUND(SrcParamData%bc,1)
     i1_u = UBOUND(SrcParamData%bc,1)
     IF (.NOT.ALLOCATED(DstParamData%bc)) THEN 
        ALLOCATE(DstParamData%bc(i1_l:i1_u),STAT=ErrStat)
        IF (ErrStat /= 0) THEN 
           ErrStat = ErrID_Fatal 
           ErrMsg = 'BDyn_CopyParam: Error allocating DstParamData%bc.'
  