anchor.diff:        O%Beddoes%FSPC(J,IBLADE) = 1.0
      ELSE
         TEMP = O%Beddoes%FSPC(J,IBLADE)/((O%Beddoes%AFE(J,IBLADE)-AOL1)*O%Beddoes%AFE(J,IBLADE))
  -      O%Beddoes%FSPC(J,IBLADE) = TEMP * TEMP * SIGN ( 1., TEMP )
  +      O%Beddoes%FSPC(J,IBLADE) = TEMP * TEMP * SIGN ( 1.0_ReKi, TEMP )
         IF ( O%Beddoes%FSPC(J,IBLADE) >  1.0 ) O%Beddoes%FSPC(J,IBLADE) =  1.0
         IF ( O%Beddoes%FSPC(J,IBLADE) < -1.0 ) O%Beddoes%FSPC(J,IBLADE) = -1.0
      ENDIF
  
positive.code:  ! Reduce step size after a zero crossing
   !CH--  Put floor under ASTEP to keep it reasonable after many zero crossings
  
     IF( NINT( SIGN(1., DAI) ) /= NINT( SIGN(1., DAI1) ) ) ASTEP = MAX( 1.0E-4, 0.5*ASTEP )
  
     AI   = AI + DELAI
     DAI1 = DELAI
  
negative.code: 
   ! Check for diverging CH and correct if necessary
  
  IF ( ABS( CH ) > 2. ) CH = SIGN( 2.0_ReKi, CH )
  
  IF ( CH < 0.96*O%LOSS ) THEN
     A2 = 0.5*( 1 - SQRT( 1.0 - CH/O%LOSS ) )
  