anchor.diff:            Init%MemberNodes(I,           1) = Node1
             Init%MemberNodes(I, Init%NDiv+1) = Node2
             
  -          IF  ( ( .not. EqualRealNos(TempPropsBeam(Prop1, 2),TempPropsBeam(Prop2, 2) ) ) &
  -           .OR. ( .not. EqualRealNos(TempPropsBeam(Prop1, 3),TempPropsBeam(Prop2, 3) ) ) &
  -           .OR. ( .not. EqualRealNos(TempPropsBeam(Prop1, 4),TempPropsBeam(Prop2, 4) ) ) )  THEN
  +          IF  ( ( .not. EqualRealNos(TempPropsBeams(Prop1, 2),TempPropsBeams(Prop2, 2) ) ) &
  +           .OR. ( .not. EqualRealNos(TempPropsBeams(Prop1, 3),TempPropsBeams(Prop2, 3) ) ) &
  +           .OR. ( .not. EqualRealNos(TempPropsBeams(Prop1, 4),TempPropsBeams(Prop2, 4) ) ) )  THEN
             
                CALL Fatal(' Material E,G and rho in a member must be the same')
                RETURN
  
positive.code:           dy = ( y2 - y1 )/Init%NDiv
            dz = ( z2 - z1 )/Init%NDiv
            
            d1 = TempPropsBeam(Prop1, 5)
            t1 = TempPropsBeam(Prop1, 6)
  
            d2 = TempPropsBeam(Prop2, 5)
            t2 = TempPropsBeam(Prop2, 6)
            
            dd = ( d2 - d1 )/Init%NDiv
            dt = ( t2 - t1 )/Init%NDiv
  
negative.code:    ENDDO                            
  
  END SUBROUTINE NodeCon
  !----------------------------------------------------------------------------
  !>
  ! - Creates Nodes and Elems instead of Joints and Members arrays
  ! - Removes the notion of "ID" and use Index instead
  SUBROUTINE SD_ReIndex_CreateNodesAndElems(Init,p, ErrStat, ErrMsg)
     TYPE(SD_InitType),            INTENT(INOUT)  ::Init
     TYPE(SD_ParameterType),       INTENT(INOUT)  ::p
     INTEGER(IntKi),               INTENT(  OUT)  :: ErrStat     ! Error status of the operation
     CHARACTER(*),                 INTENT(  OUT)  :: ErrMsg      ! Error message if ErrStat /= ErrID_None
     ! local variable
     INTEGER                       :: I, iMem, J, n, iNode, Node, Node1, Node2, Prop, Prop1, Prop2   
     INTEGER                       :: NNE      ! number of nodes per element
     LOGICAL                       :: found, CreateNewProp
     INTEGER(IntKi)                :: mType !< Member Type
     CHARACTER(1024)               :: sType !< String for element type
     INTEGER(IntKi)                :: ErrStat2
     CHARACTER(1024)               :: ErrMsg2
     ErrStat = ErrID_None
     ErrMsg  = ""
  
     ! TODO See if Elems is actually used elsewhere
  
     CALL AllocAry(p%Elems,         Init%NElem,    MembersCol, 'p%Elems',         ErrStat2, ErrMsg2); if(Failed()) return
     CALL AllocAry(Init%Nodes,      Init%NNode,    JointsCol,  'Init%Nodes',      ErrStat2, ErrMsg2); if(Failed()) return
  
     ! --- Initialize Nodes
     Init%Nodes = 0   
     DO I = 1,Init%NJoints
        Init%Nodes(I, 1) = I
        Init%Nodes(I, 2) = Init%Joints(I, 2)
        Init%Nodes(I, 3) = Init%Joints(I, 3)
        Init%Nodes(I, 4) = Init%Joints(I, 4)
     ENDDO
  
     ! --- Initialize Elems, starting with each member as an element (we'll take NDiv into account later)
     p%Elems = 0
     ! --- Replacing "MemberID"  "JointID", and "PropSetID" by simple index in this tables
     !bjj: TODO: JMJ wants check that YoungE, ShearG, and MatDens are equal in the two properties because we aren't going to interpolate them. This should be less confusing for users.                                                
  