anchor.diff:    !Local variables
     INTEGER(IntKI)                         :: i,j,k,node  ! Loop variables
     INTEGER(IntKI)                         :: nNodesBladeProps ! Number of nodes in the blade properties for a given blade
  +  INTEGER(IntKI)                         :: nNodesTowerProps ! Number of nodes in the tower properties 
     INTEGER(IntKI)                         :: jLower      ! Index of the blade properties node just smaller than the force node
     INTEGER(IntKi)                         :: ErrStat2    ! temporary Error status of the operation
     CHARACTER(ErrMsgLen)                   :: ErrMsg2     ! temporary Error message if ErrStat /= ErrID_None
  
positive.code:   ! Now calculate the positions of the force nodes based on interpolation
    DO I=1,p_OpFM%NnodesForceBlade ! Calculate the position of the force nodes
       jLower=1
       do while ( (rStructNodes(jLower) - p_OpFM%forceBldRnodes(I))*(rStructNodes(jLower+1) - p_OpFM%forceBldRnodes(I)) .gt. 0 )
          jLower = jLower + 1
       end do
       rInterp =  (p_OpFM%forceBldRnodes(I) - rStructNodes(jLower))/(rStructNodes(jLower+1)-rStructNodes(jLower)) ! The location of this force node in (0,1) co-ordinates between the jLower and jLower+1 nodes
  
negative.code:   !Do the blade first
    allocate(p_OpFM%forceBldRnodes(p_OpFM%NnodesForceBlade), stat=errStat2)
    dRforceNodes = p_OpFM%BladeLength/(p_OpFM%NnodesForceBlade-1)
    do i=1,p_OpFM%NnodesForceBlade-1
       p_OpFM%forceBldRnodes(i) = (i-1)*dRforceNodes 
    end do
    p_OpFM%forceBldRnodes(p_OpFM%NnodesForceBlade) = p_OpFM%BladeLength
  
  
    !Do the tower now
    allocate(p_OpFM%forceTwrHnodes(p_OpFM%NnodesForceTower), stat=errStat2)
    dRforceNodes = p_OpFM%TowerHeight/(p_OpFM%NnodesForceTower-1)
    do i=1,p_OpFM%NnodesForceTower-1
       p_OpFM%forceTwrHnodes(i) = (i-1)*dRforceNodes
    end do
    p_OpFM%forceTwrHnodes(p_OpFM%NnodesForceTower) = p_OpFM%TowerHeight
  
    return
  
  END SUBROUTINE OpFM_CreateActForceBladeTowerNodes
  