Step 1. Modify SUBROUTINE ProblemSetErrFlag(Info). Example: SUBROUTINE ProblemSetErrFlag(Info) TYPE(InfoDef) :: Info INTEGER :: i,j,k,mx,my,mz,rmbc,zrmbc,level REAL(KIND=xprec) :: x,y,z,xl,yl,zl,dx,dy,dz, r level=Info%level rmbc=levels(level)%gmbc(levels(level)%step) zrmbc=rmbc mx = Info%mX(1) my = Info%mX(2) mz = Info%mX(3) dx=levels(level)%dX dy=dx dz=dx xl=Info%xBounds(1,1) yl=Info%xBounds(2,1) zl=Info%xBounds(3,1) DO k=1, mz z = (zl+(REAL(k,xPrec)-half)*dz) DO i=1, mx x = (xl+(REAL(i,xPrec)-half)*dx) DO j=1, my y = (yl+(REAL(j,xPrec)-half)*dy) r = sqrt(x*x+y*y+z*z) if ( r .le. r_surface) Info%ErrFlag(i,j,k)=1 END DO END DO END DO ! print*, "ProblemSetErrFlag called" END SUBROUTINE ProblemSetErrFlag Step 2. Adjust the buffers parameter in global.data, Example: buffers = 8 8 8 8 8 8 8 !2 2 2 2 2 2 2 2 ! Number of zones to buffer ghost cells Step 3. Increase the qtolerance parameter in global.data so the refinement will not happen automatically: qTolerance = 1d31 1d31 1d31 1d31 1d31 1d31 1d31 !.10,.10,.10,.10,.10,.10,.10,.10 ! Field variable tolerances on each level