anchor.diff:                                ,INode   = i            &
                                 ,Pos     = TmpPos       &
                                 ,ErrStat = ErrStat2      &
  -                              ,ErrMess = ErrMsg2       )
  +                              ,ErrMess = ErrMsg2      &
  +                              , Orient = ??? ) !bjj: add orient=DCM ! Orientation (direction cosine matrix) of node; identity by default
         CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
          
      ENDDO
  
positive.code:             CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
        END IF
  
     !---------------------- GEOMETRY PARAMETER --------------------------------------
     CALL ReadCom(UnIn,InputFile,'Section Header: Geometry Parameter',ErrStat2,ErrMsg2,UnEc)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     CALL ReadVar(UnIn,InputFile,InputFileData%member_total,"member_total", "Total number of member",ErrStat2,ErrMsg2,UnEc)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     CALL ReadVar(UnIn,InputFile,InputFileData%kp_total,"kp_total", "Total number of key point",ErrStat2,ErrMsg2,UnEc)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     CALL AllocAry(InputFileData%kp_member,InputFileData%member_total,'Number of key point in each member',ErrStat2,ErrMsg2)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     CALL AllocAry(InputFileData%kp_coordinate,InputFileData%kp_total,4,'Key point coordinates input array',ErrStat2,ErrMsg2)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
        if (ErrStat >= AbortErrLev) return
     InputFileData%kp_member(:) = 0
     InputFileData%kp_coordinate(:,:) = 0.0D0
     temp_int = 0
     DO i=1,InputFileData%member_total
         READ(UnIn,*) j,InputFileData%kp_member(j) !bjj: fix me!
     ENDDO
     CALL ReadCom(UnIn,InputFile,'key point x,y,z locations and initial twist angles',ErrStat2,ErrMsg2,UnEc)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     CALL ReadCom(UnIn,InputFile,'key point and initial twist units',ErrStat2,ErrMsg2,UnEc)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     DO i=1,InputFileData%kp_total
         READ(UnIn,*) InputFileData%kp_coordinate(i,2),InputFileData%kp_coordinate(i,3),&
                      InputFileData%kp_coordinate(i,1),InputFileData%kp_coordinate(i,4)
         IF(UnEc>0) THEN
             IF(i==1) WRITE(UnEc,'(/,A,/)') 'Key points coordinates and initial twist angle'
             WRITE(UnEc,'(/,A,/)') InputFileData%kp_coordinate(i,2),InputFileData%kp_coordinate(i,3),&
                                   InputFileData%kp_coordinate(i,1),InputFileData%kp_coordinate(i,4)
         ENDIF
     ENDDO
     InputFileData%kp_coordinate(:,4) = -InputFileData%kp_coordinate(:,4)
     !---------------------- MESH PARAMETER -----------------------------------------
     CALL ReadCom(UnIn,InputFile,'Section Header: Mesh Parameter',ErrStat2,ErrMsg2,UnEc)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
  
negative.code:    INTEGER(IntKi)               :: UnIn                         ! Unit number for reading file
     INTEGER(IntKi)               :: ErrStat2                     ! Temporary Error status
     LOGICAL                      :: Echo                         ! Determines if an echo file should be written
     INTEGER(IntKi)               :: IOS                          ! Temporary Error status
     CHARACTER(ErrMsgLen)         :: ErrMsg2                      ! Temporary Error message
     character(*), parameter      :: RoutineName = 'BD_ReadPrimaryFile'
     
     CHARACTER(1024)              :: PriPath                      ! Path name of the primary file
     CHARACTER(1024)              :: FTitle                       ! "File Title": the 2nd line of the input file, which contains a description of its contents
     CHARACTER(200)               :: Line                         ! Temporary storage of a line from the input
  
     INTEGER(IntKi)               :: i
     INTEGER(IntKi)               :: j
     INTEGER(IntKi)               :: temp_int
     REAL(ReKi)                   :: tmpReAry(4)
  
     ! Initialize some variables:
     ErrStat = ErrID_None
  