| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | igrid | |||
| double precision, | intent(in) | :: | w(ixGlo1:ixGhi1,ixGlo2:ixGhi2,ixGlo3:ixGhi3,nw) |
subroutine forcedrefine_grid_io(igrid,w) use mod_forest, only: coarsen, refine use mod_global_parameters integer, intent(in) :: igrid double precision, intent(in) :: w(ixGlo1:ixGhi1,ixGlo2:ixGhi2,& ixGlo3:ixGhi3,nw) integer :: level, my_levmin, my_levmax logical, dimension(ixGlo1:ixGhi1,ixGlo2:ixGhi2,& ixGlo3:ixGhi3) :: refineflag level=node(plevel_,igrid) if (level_io > 0) then my_levmin = level_io my_levmax = level_io else my_levmin = max(1,level_io_min) my_levmax = min(refine_max_level,level_io_max) end if if (level>my_levmax) then refine(igrid,mype)=.false. coarsen(igrid,mype)=.true. elseif (level<my_levmin) then refine(igrid,mype)=.true. coarsen(igrid,mype)=.false. end if if (level==my_levmin .or. level==my_levmax) then refine(igrid,mype)=.false. coarsen(igrid,mype)=.false. end if if(refine(igrid,mype).and.level>=refine_max_level)refine(igrid,& mype)=.false. if(coarsen(igrid,mype).and.level<=1)coarsen(igrid,mype)=.false. end subroutine forcedrefine_grid_io