diff --git a/amgprec/impl/amg_ccprecset.F90 b/amgprec/impl/amg_ccprecset.F90 index 70dc3013..9f4fb45f 100644 --- a/amgprec/impl/amg_ccprecset.F90 +++ b/amgprec/impl/amg_ccprecset.F90 @@ -194,6 +194,15 @@ subroutine amg_ccprecseti(p,what,val,info,ilev,ilmax,pos,idx) end if call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) + case('COARSE_INVFILL') + if (ilev_ /= nlev_) then + write(psb_err_unit,*) name,& + & ': Error: Inconsistent specification of WHAT vs. ILEV' + info = -2 + return + end if + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + case('BJAC_ITRACE') if (ilev_ /= nlev_) then write(psb_err_unit,*) name,& @@ -243,6 +252,11 @@ subroutine amg_ccprecseti(p,what,val,info,ilev,ilmax,pos,idx) call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) end if + case('COARSE_INVFILL') + if (nlev_ > 1) then + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + end if + case('BJAC_ITRACE') if (nlev_ > 1) then call p%precv(nlev_)%set('SMOOTHER_ITRACE',val,info,pos=pos) diff --git a/amgprec/impl/amg_dcprecset.F90 b/amgprec/impl/amg_dcprecset.F90 index deaced0d..f70ff55c 100644 --- a/amgprec/impl/amg_dcprecset.F90 +++ b/amgprec/impl/amg_dcprecset.F90 @@ -200,6 +200,15 @@ subroutine amg_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx) end if call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) + case('COARSE_INVFILL') + if (ilev_ /= nlev_) then + write(psb_err_unit,*) name,& + & ': Error: Inconsistent specification of WHAT vs. ILEV' + info = -2 + return + end if + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + case('BJAC_ITRACE') if (ilev_ /= nlev_) then write(psb_err_unit,*) name,& @@ -249,6 +258,11 @@ subroutine amg_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx) call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) end if + case('COARSE_INVFILL') + if (nlev_ > 1) then + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + end if + case('BJAC_ITRACE') if (nlev_ > 1) then call p%precv(nlev_)%set('SMOOTHER_ITRACE',val,info,pos=pos) diff --git a/amgprec/impl/amg_scprecset.F90 b/amgprec/impl/amg_scprecset.F90 index 754725ad..36601f05 100644 --- a/amgprec/impl/amg_scprecset.F90 +++ b/amgprec/impl/amg_scprecset.F90 @@ -194,6 +194,15 @@ subroutine amg_scprecseti(p,what,val,info,ilev,ilmax,pos,idx) end if call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) + case('COARSE_INVFILL') + if (ilev_ /= nlev_) then + write(psb_err_unit,*) name,& + & ': Error: Inconsistent specification of WHAT vs. ILEV' + info = -2 + return + end if + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + case('BJAC_ITRACE') if (ilev_ /= nlev_) then write(psb_err_unit,*) name,& @@ -243,6 +252,11 @@ subroutine amg_scprecseti(p,what,val,info,ilev,ilmax,pos,idx) call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) end if + case('COARSE_INVFILL') + if (nlev_ > 1) then + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + end if + case('BJAC_ITRACE') if (nlev_ > 1) then call p%precv(nlev_)%set('SMOOTHER_ITRACE',val,info,pos=pos) diff --git a/amgprec/impl/amg_zcprecset.F90 b/amgprec/impl/amg_zcprecset.F90 index 5317ca6c..edaed4aa 100644 --- a/amgprec/impl/amg_zcprecset.F90 +++ b/amgprec/impl/amg_zcprecset.F90 @@ -200,6 +200,15 @@ subroutine amg_zcprecseti(p,what,val,info,ilev,ilmax,pos,idx) end if call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) + case('COARSE_INVFILL') + if (ilev_ /= nlev_) then + write(psb_err_unit,*) name,& + & ': Error: Inconsistent specification of WHAT vs. ILEV' + info = -2 + return + end if + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + case('BJAC_ITRACE') if (ilev_ /= nlev_) then write(psb_err_unit,*) name,& @@ -249,6 +258,11 @@ subroutine amg_zcprecseti(p,what,val,info,ilev,ilmax,pos,idx) call p%precv(nlev_)%set('SUB_FILLIN',val,info,pos=pos) end if + case('COARSE_INVFILL') + if (nlev_ > 1) then + call p%precv(nlev_)%set('INV_FILLIN',val,info,pos=pos) + end if + case('BJAC_ITRACE') if (nlev_ > 1) then call p%precv(nlev_)%set('SMOOTHER_ITRACE',val,info,pos=pos)