anchor.diff:           ! For this member, determine possible split conditions due to crossing through:
            ! MSL, seabed, marine growth boundaries, filled free surface location.
            !
  -         
  +      
  +      ! Start with no splits.	  
         nSplits = 0  
         possibleSplits = -9999999.0  ! Initialize possibleSplit values to a number that never appears in the geometry.
         
  -         ! Is the member filled?
  +      ! If the member is filled, add a possible split location at the global Z location of the filled free surface.
         IF ( members(I)%MmbrFilledIDIndx /= -1 ) THEN
            nSplits =  1
               ! The free surface is specified relative to the MSL.
  
positive.code: !END SUBROUTINE SplitElementsForWtr
  !====================================================================================================
  SUBROUTINE SubdivideMembers( numNodes, nodes, numElements, elements, ErrStat, ErrMsg )
  
     INTEGER,                  INTENT ( INOUT )  :: numNodes
     TYPE(Morison_NodeType),   INTENT ( INOUT )  :: nodes(:)   
     INTEGER,                  INTENT ( INOUT )  :: numElements
  
negative.code: END SUBROUTINE DistrFloodedBuoyancy
  
  SUBROUTINE DistrAddedMass( densWater, Ca, AxCa, C, R, tMG, dRdZ, AM_M)
     ! This calculates the distributed hydrodynamic added mass matrix for a given node.
  
     REAL(ReKi),         INTENT ( IN    )  :: densWater
     REAL(ReKi),         INTENT ( IN    )  :: Ca                         ! Transverse added mass coefficient
     REAL(ReKi),         INTENT ( IN    )  :: AxCa                       ! Axial added mass coefficient (applied to tapered portions)
     REAL(ReKi),         INTENT ( IN    )  :: C(3,3)                     
     REAL(ReKi),         INTENT ( IN    )  :: R                          ! Radius at node [m]
     REAL(ReKi),         INTENT ( IN    )  :: tMG                        ! Thickness of marine growth (adds to radius) [m]
     REAL(ReKi),         INTENT ( IN    )  :: dRdZ                       ! Rate of change in radius with length at node [-]
     REAL(ReKi),         INTENT (   OUT )  :: AM_M(3,3)                  ! Distributed added mass matrix to be calculated [kg/m]
     
     REAL(ReKi)                            :: f,f2
     
     f         = Ca*densWater*Pi*(R+tMG)*(R+tMG)                         ! Transverse added mass scaler, applied to I - k*k^T
     f2        = AxCa*2.0*densWater*Pi*abs(dRdZ)*(R+tMG)*(R+tMG)         ! Axial added mass scaler, applied to k k^T 
     !AM_M      = 0.0
     AM_M(1,1) = f*(  C(2,3)*C(2,3) + C(3,3)*C(3,3) ) -f2*C(1,3)*C(1,3)  !<----@mhall: why is the f2 term being subtracted rather than added?
     AM_M(1,2) = f*( -C(1,3)*C(2,3)                 ) -f2*C(1,3)*C(2,3)
     AM_M(1,3) = f*( -C(1,3)*C(3,3)                 ) -f2*C(1,3)*C(3,3)
     
     AM_M(2,1) = f*( -C(1,3)*C(2,3)                 ) -f2*C(2,3)*C(1,3)
     AM_M(2,2) = f*(  C(1,3)*C(1,3) + C(3,3)*C(3,3) ) -f2*C(2,3)*C(2,3)  !<----@mhall: would it be cleaner to just use the k unit vector?  (also, diagonal terms can be shortened (1-k*kT))
     AM_M(2,3) = f*( -C(2,3)*C(3,3)                 ) -f2*C(2,3)*C(3,3)
     
     AM_M(3,1) = f*( -C(1,3)*C(3,3)                 ) -f2*C(3,3)*C(1,3)
  