anchor.diff:     Real(reKi), DIMENSION( p%URbarL+p%DOFL+6*p%Nreact)      :: yout            ! modifications to Y2 and Udotdot to include constrained node DOFs
      Real(ReKi),  DIMENSION(p%URbarL+p%DOFL+6*p%Nreact)      ::uddout           ! modifications to Y2 and Udotdot to include constrained node DOFs
      Integer(IntKi)                              ::sgn !+1/-1 for node force calculations
  -   type(MeshAuxDataType), pointer :: pLst
  +   type(MeshAuxDataType), pointer :: pLst !< Alias to shorten notation and highlight code similarities
      ErrStat = ErrID_None   
      ErrMsg  = ""
      
  
positive.code: !> This subroutine initializes the output module, checking if the output parameter list (OutList)
  ! contains valid names, and opening the output file if there are any requested outputs
  SUBROUTINE SDOut_Init( Init, y,  p, misc, InitOut, WtrDpth, ErrStat, ErrMsg )
     TYPE(SD_InitType),        INTENT( INOUT ) :: Init                 ! data needed to initialize the output module     
     TYPE(SD_OutputType),      INTENT( INOUT ) :: y                    ! SubDyn module's output data
     TYPE(SD_ParameterType),   INTENT( INOUT ) :: p                    ! SubDyn module paramters
     TYPE(SD_MiscVarType),     INTENT( INOUT ) :: misc                 ! SubDyn misc/optimization variables
     TYPE(SD_InitOutputType ), INTENT( INOUT ) :: InitOut              ! SubDyn module initialization output data
     REAL(ReKi),               INTENT( IN    ) :: WtrDpth              ! water depth from initialization routine  
     INTEGER,                       INTENT(   OUT ) :: ErrStat              ! a non-zero value indicates an error occurred           
     CHARACTER(*),                  INTENT(   OUT ) :: ErrMsg               ! Error message if ErrStat /= ErrID_None
     ! Local variables
     INTEGER(IntKi)       :: ErrStat2      ! Error status of the operation
     CHARACTER(ErrMsgLen) :: ErrMsg2       ! Error message if ErrStat /= ErrID_None
     INTEGER(IntKi)                                   :: I,J,K,K2,L,NconEls   !Counters
     INTEGER(IntKi)                                   :: Junk  !Temporary Holders
     INTEGER(IntKi), Dimension(2)                     :: M   !counter for two nodes at a time
     INTEGER(IntKi)                                   :: eType
     REAL(ReKi) :: FCe(12) ! Pretension force from cable element
     ErrStat = 0      
     ErrMsg=""
  
negative.code:     ErrMsg2 = 'Error allocating p%MOutLst2 array in SDOut_Init'
       
      DO I=1,p%NMembers
        pLst => p%MOutLst2(I)
        CALL AllocAry(pLst%NodeIDs, Init%Ndiv+1, 'MOutLst2(I)%NodeIDs', ErrStat2, ErrMsg2); if(Failed()) return
        CALL AllocAry(pLst%ElmIDs,     2, 1, 'MOutLst2(I)%ElmIDs'     , ErrStat2, ErrMsg2); if(Failed()) return
        CALL AllocAry(pLst%ElmNds,     2, 1, 'MOutLst2(I)%ElmNds'     , ErrStat2, ErrMsg2); if(Failed()) return
        CALL AllocAry(pLst%Me, 12, 12, 2, 1, 'MOutLst2(I)%Me'         , ErrStat2, ErrMsg2); if(Failed()) return
        CALL AllocAry(pLst%Ke, 12, 12, 2, 1, 'MOutLst2(I)%Ke'         , ErrStat2, ErrMsg2); if(Failed()) return
        CALL AllocAry(pLst%Fg,     12, 2, 1, 'MOutLst2(I)%Fg'         , ErrStat2, ErrMsg2); if(Failed()) return
        pLst%MemberID=I !Assign memberID for all members
        pLst%NodeIDs=Init%MemberNodes(I,1:Init%Ndiv+1)  !We are storing  the actual node numbers in the member
        !Now I need to find out which elements are attached to those nodes and still belong to the member I
        !ElmIDs could contain the same element twice if Ndiv=1
        pLst%ElmIDs=0  !Initialize to 0
        DO J=1,Init%Ndiv+1,Init%Ndiv !Iterate on requested nodes for that member (first and last)
            !I need to get at most 2 elements that belong to the same I Member
            !make use of MemberNodes and NodesConnE
            NconEls=Init%NodesConnE(pLst%NodeIDs(J),1) !Number of elements connecting to the 1st or last node of the member
            K2= J/(Init%Ndiv+1)+1  !store this quantity used later, basically 1 or 2 depending on J
            DO K=1, NconEls 
                L=Init%NodesConnE(pLst%NodeIDs(J),k+1)  !k-th Element Number in the set of elements attached to the selected node 
                M=p%Elems(L,2:3) !1st and 2nd node of the k-th element
               !Select only the other node, not the one where elements connect to
               Junk=M(1)
               IF (M(1) .EQ. pLst%NodeIDs(J)) Junk=M(2)
               IF (ANY(Init%MemberNodes(pLst%MemberID,:) .EQ. Junk)) THEN  !This means we are in the selected member
                    pLst%ElmIDs(K2,1)=L     !This array has for each node requested NODEID(J), for each member I, the element to get results for 
                    pLst%ElmNds(K2,1)=1                        !store whether first or second node of element  
                    IF (M(2) .EQ. pLst%NodeIDs(J) ) pLst%ElmNds(K2,1)=2 !store whether first or second node of element  
                    ! --- Element Me, Ke, Fg, Fce
                    CALL ElemM(p%ElemProps(L),         pLst%Me(:,:,K2, 1))
                    CALL ElemK(p%ElemProps(L),         pLst%Ke(:,:,K2, 1))
                    CALL ElemF(p%ElemProps(L), Init%g, pLst%Fg(:,K2,1), FCe)
                    pLst%Fg(:,K2,1) = pLst%Fg(:,K2,1) + FCe(1:12) ! Adding cable element force 
                    EXIT   !We found the element for that node, exit loop on elements
                ENDIF
            ENDDO
  