anchor.diff:           m%Vtot_ll = m%Vwnd_LL - m%Vstr_ll
            call CirculationFromPolarData(GammaLastIter, p, m, AFInfo,ErrStat2,ErrMsg2);  if(Failed()) return;
         else
  -         GammaLastIter(1:p%nSpan,1:p%nWings) = Gamma_LL_prev(1:p%nSpan,1:p%nWings)
  +         ! NOTE: we need to inverse the scaling to speed up the convergence
  +         GammaLastIter(1:p%nSpan,1:p%nWings) = Gamma_LL_prev(1:p%nSpan,1:p%nWings) / GammaScale 
         endif
   
         if (any(x%r_NW(1,:,1:m%nNW+1,:)<-999)) then
  -         print*,'Wings_ComputeCirculationPolarData: Problem in input NW points'
  -         STOP
  +         ErrMsg='Wings_ComputeCirculationPolarData: Problem in input NW points'; ErrStat=ErrID_Fatal; return
         endif
   
   
  
positive.code:       type(FVW_ParameterType),         intent(in   )  :: p              !< Parameters
        type(FVW_ContinuousStateType),   intent(in   )  :: x              !< Parameters
        type(FVW_MiscVarType),           intent(inout)  :: m              !< Initial misc/optimization variables
        type(AFI_ParameterType),         intent(in   )  :: AFInfo(:)      !< The airfoil parameter data
        integer(IntKi),                  intent(  out)  :: ErrStat        !< Error status of the operation
        character(*),                    intent(  out)  :: ErrMsg         !< Error message if ErrStat /= ErrID_None
  
negative.code:       ErrStat = ErrID_None
        ErrMsg  = ""
  
        if (t<p%FullCirculationStart) then
           ! The circulation is ramped up progressively, starting from 0 
           if (t<=0) then
              GammaScale=0.0_ReKi
           else
              s=(t/p%FullCirculationStart)
              !GammaScale = 1._ReKi- 1._ReKi/(1._ReKi+exp((1-2*s)/(s*(s-1._ReKi)))) ! Using a smooth approsimation of HeavySide function
              GammaScale = s  ! Using a linear scaling
           endif
        else
           GammaScale=1.0_ReKi
        endif
  
        if (p%CirculationMethod==idCircPrescribed) then 
           do iW = 1, p%nWings !Loop over lifting lines
              Gamma_LL(1:p%nSpan,iW) = p%PrescribedCirculation(1:p%nSpan)
           enddo
  
        else if (p%CirculationMethod==idCircPolarData) then 
           ! ---  Solve for circulation using polar data
           CALL Wings_ComputeCirculationPolarData(t, Gamma_LL, Gamma_LL_prev, u, p, x, m, AFInfo, GammaScale, ErrStat, ErrMsg, iLabel)
  
        else if (p%CirculationMethod==idCircNoFlowThrough) then 
           ! ---  Solve for circulation using the no-flow through condition
           ErrMsg='Circulation method nor implemented'; ErrStat=ErrID_Fatal; return ! should never happen
        else
           ErrMsg='Circulation method nor implemented'; ErrStat=ErrID_Fatal; return ! should never happen
        endif
  
        ! Scale circulation (for initial transient)
        Gamma_LL = Gamma_LL * GammaScale
  
  
     endsubroutine Wings_ComputeCirculation
  
     !----------------------------------------------------------------------------------------------------------------------------------
     !>
     subroutine Wings_ComputeCirculationPolarData(t, Gamma_LL, Gamma_LL_prev, u, p, x, m, AFInfo, GammaScale, ErrStat, ErrMsg, iLabel)
        real(DbKi),                      intent(in   )  :: t           !< Current simulation time in seconds
        real(ReKi), dimension(:,:),      intent(inout)  :: Gamma_LL       !< Circulation on all the lifting lines
        real(ReKi), dimension(:,:),      intent(in   )  :: Gamma_LL_prev  !< Previous/Guessed circulation
  