mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-18 11:52:12 +00:00
Work vectors for X2Y/Y2X should be taken from different levels.
This commit is contained in:
@@ -520,7 +520,7 @@ contains
|
||||
call psb_map_X2Y(cone,vx2l,&
|
||||
& czero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -540,7 +540,7 @@ contains
|
||||
call psb_map_Y2X(cone,p%precv(level+1)%wrk%vy2l,&
|
||||
& cone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -653,7 +653,7 @@ contains
|
||||
call psb_map_X2Y(cone,vty,&
|
||||
& czero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -664,7 +664,7 @@ contains
|
||||
call psb_map_X2Y(cone,vx2l,&
|
||||
& czero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -680,7 +680,7 @@ contains
|
||||
call psb_map_Y2X(cone,p%precv(level+1)%wrk%vy2l,&
|
||||
& cone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -697,7 +697,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_X2Y(cone,vty,&
|
||||
& czero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during W-cycle restriction')
|
||||
@@ -709,7 +709,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_Y2X(cone,p%precv(level+1)%wrk%vy2l,&
|
||||
& cone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -889,7 +889,7 @@ contains
|
||||
call psb_map_X2Y(cone,vty,&
|
||||
& czero,p%precv(level + 1)%wrk%vx2l,&
|
||||
& p%precv(level + 1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -925,7 +925,7 @@ contains
|
||||
call psb_map_Y2X(cone,p%precv(level+1)%wrk%vy2l,&
|
||||
& cone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
|
||||
@@ -520,7 +520,7 @@ contains
|
||||
call psb_map_X2Y(done,vx2l,&
|
||||
& dzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -540,7 +540,7 @@ contains
|
||||
call psb_map_Y2X(done,p%precv(level+1)%wrk%vy2l,&
|
||||
& done,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -653,7 +653,7 @@ contains
|
||||
call psb_map_X2Y(done,vty,&
|
||||
& dzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -664,7 +664,7 @@ contains
|
||||
call psb_map_X2Y(done,vx2l,&
|
||||
& dzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -680,7 +680,7 @@ contains
|
||||
call psb_map_Y2X(done,p%precv(level+1)%wrk%vy2l,&
|
||||
& done,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -697,7 +697,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_X2Y(done,vty,&
|
||||
& dzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during W-cycle restriction')
|
||||
@@ -709,7 +709,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_Y2X(done,p%precv(level+1)%wrk%vy2l,&
|
||||
& done,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -889,7 +889,7 @@ contains
|
||||
call psb_map_X2Y(done,vty,&
|
||||
& dzero,p%precv(level + 1)%wrk%vx2l,&
|
||||
& p%precv(level + 1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -925,7 +925,7 @@ contains
|
||||
call psb_map_Y2X(done,p%precv(level+1)%wrk%vy2l,&
|
||||
& done,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
|
||||
@@ -520,7 +520,7 @@ contains
|
||||
call psb_map_X2Y(sone,vx2l,&
|
||||
& szero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -540,7 +540,7 @@ contains
|
||||
call psb_map_Y2X(sone,p%precv(level+1)%wrk%vy2l,&
|
||||
& sone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -653,7 +653,7 @@ contains
|
||||
call psb_map_X2Y(sone,vty,&
|
||||
& szero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -664,7 +664,7 @@ contains
|
||||
call psb_map_X2Y(sone,vx2l,&
|
||||
& szero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -680,7 +680,7 @@ contains
|
||||
call psb_map_Y2X(sone,p%precv(level+1)%wrk%vy2l,&
|
||||
& sone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -697,7 +697,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_X2Y(sone,vty,&
|
||||
& szero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during W-cycle restriction')
|
||||
@@ -709,7 +709,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_Y2X(sone,p%precv(level+1)%wrk%vy2l,&
|
||||
& sone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -889,7 +889,7 @@ contains
|
||||
call psb_map_X2Y(sone,vty,&
|
||||
& szero,p%precv(level + 1)%wrk%vx2l,&
|
||||
& p%precv(level + 1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -925,7 +925,7 @@ contains
|
||||
call psb_map_Y2X(sone,p%precv(level+1)%wrk%vy2l,&
|
||||
& sone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
|
||||
@@ -520,7 +520,7 @@ contains
|
||||
call psb_map_X2Y(zone,vx2l,&
|
||||
& zzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -540,7 +540,7 @@ contains
|
||||
call psb_map_Y2X(zone,p%precv(level+1)%wrk%vy2l,&
|
||||
& zone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -653,7 +653,7 @@ contains
|
||||
call psb_map_X2Y(zone,vty,&
|
||||
& zzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -664,7 +664,7 @@ contains
|
||||
call psb_map_X2Y(zone,vx2l,&
|
||||
& zzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during restriction')
|
||||
@@ -680,7 +680,7 @@ contains
|
||||
call psb_map_Y2X(zone,p%precv(level+1)%wrk%vy2l,&
|
||||
& zone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during prolongation')
|
||||
@@ -697,7 +697,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_X2Y(zone,vty,&
|
||||
& zzero,p%precv(level+1)%wrk%vx2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error during W-cycle restriction')
|
||||
@@ -709,7 +709,7 @@ contains
|
||||
if (info == psb_success_) call psb_map_Y2X(zone,p%precv(level+1)%wrk%vy2l,&
|
||||
& zone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -889,7 +889,7 @@ contains
|
||||
call psb_map_X2Y(zone,vty,&
|
||||
& zzero,p%precv(level + 1)%wrk%vx2l,&
|
||||
& p%precv(level + 1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=wv(1),vty=p%precv(level+1)%wrk%wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
@@ -925,7 +925,7 @@ contains
|
||||
call psb_map_Y2X(zone,p%precv(level+1)%wrk%vy2l,&
|
||||
& zone,vy2l,&
|
||||
& p%precv(level+1)%map,info,work=work,&
|
||||
& vtx=wv(1),vty=wv(2))
|
||||
& vtx=p%precv(level+1)%wrk%wv(1),vty=wv(1))
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
|
||||
Reference in New Issue
Block a user