anchor.diff:               CALL Catenary ( XF           , ZF          , Line%UnstrLen, LineProp%EA  , &
                                WetWeight    , SeabedCD,    TenTol,     (N+1)     , &
                                LSNodes, LNodesX, LNodesZ , ErrStat2, ErrMsg2)
  -
   
         IF (ErrStat2 == ErrID_None) THEN ! if it worked, use it
             ! Transform the positions of each node on the current line from the local
  
positive.code:             dVF = dVF*( 1.0_DbKi - Tol*I )            ! Reduce dHF by factor (between 1 at I = 1 and 0 at I = MaxIter) that reduces linearly with iteration count to ensure that we converge on a solution even in the case were we obtain a nonconvergent cycle about the correct solution (this happens, for example, if we jump to quickly between a taut and slack catenary)
  
              dHF = MAX( dHF, ( Tol - 1.0_DbKi )*HF )   ! To avoid an ill-conditioned situation, make sure HF does not go less than or equal to zero by having a lower limit of Tol*HF [NOTE: the value of dHF = ( Tol - 1.0_DbKi )*HF comes from: HF = HF + dHF = Tol*HF when dHF = ( Tol - 1.0_DbKi )*HF]
  
  
              ! Check if we have converged on a solution, or restart the iteration, or
              !   Abort if we cannot find a solution:
  
negative.code: 
     PRIVATE
  
     TYPE(ProgDesc), PARAMETER            :: MD_ProgDesc = ProgDesc( 'MoorDyn', 'v1.01.00F-mth', '11-Jan-2016' )
  
  
     PUBLIC :: MD_Init
  