anchor.diff:    integer,parameter::MAXIT_PBC=50 !< max number of momentum and pressure equation iterations
     integer,parameter::MAXIT_ENERGY=50 !< max number of energy equation iterations
     integer,parameter::MAXIT_OUTER=20 !< max number of outer iterations
  +  integer,parameter::MAXIT_FULL=50 !< max number of full NS equation iterations
     
     integer,parameter::BC_WALL_TEMP=0 !< wall boundary with prescribed temperature
     integer,parameter::BC_WALL_TEMP_UDF=5 !< wall boundary with prescribed temperature by UDF
  
positive.code:       pbcXFact((DIMS+1)*(i-1)+(DIMS+1))=1d0/pScale
        pbcRFact((DIMS+1)*(i-1)+1:(DIMS+1)*(i-1)+DIMS)=1d0/rhouScale
        pbcRFact((DIMS+1)*(i-1)+(DIMS+1))=1d0/rhoScale
      end forall
      call pbcEq%setScale(pbcXFact,pbcRFact)
      
      nItPBC=0
      nItEnergy=0
      
      write(*,'(a,g12.6,a,g12.6)')'[i] starting step, t: ',t,' dt: ',dt
    end subroutine
  
negative.code:   double precision,allocatable::tempScale !< temperature scale [K]
    double precision,allocatable::pbcXFact(:) !< pbc solution scaling factor vector
    double precision,allocatable::pbcRFact(:) !< pbc residual scaling factor vector
    double precision,allocatable::fullXFact(:) !< full system solution scaling factor vector
    double precision,allocatable::fullRFact(:) !< full system residual scaling factor vector
    
    ! data for algebraic solver
    type(NewtonKrylov)::pbcEq !< momentum and pressure equations (isothermal) solved by Newton-GMRES
    type(fixPt)::energyEq !< energy equation as a fix point problem
    type(NewtonKrylov)::fullEq !< full NS equations solved by Newton-GMRES
    integer::nItPBC,nItEnergy,nItOuter,nItFull !< number of iterations
    
  contains
    
  