Use ASSOCIATE for wrk vectors. KCYCLE to be debugged.

This commit is contained in:
Salvatore Filippone
2017-12-08 15:17:31 +00:00
parent 08040c455b
commit 6f9a3c10d2
8 changed files with 2116 additions and 1976 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+21 -3
View File
@@ -552,11 +552,12 @@ contains
!
! Now for the ML application itself
!
! We have VTX/VTY/VX2L/VY2L
! VTX/VTY/VX2L/VY2L are stored explicitly
!
val = val + 4
!
! plus some additions for specific ML/cycles
! additions for specific ML/cycles
!
select case(lv%parms%ml_cycle)
case(mld_add_ml_,mld_mult_ml_,mld_vcycle_ml_, mld_wcycle_ml_)
@@ -586,6 +587,19 @@ contains
info = psb_success_
nwv = lv%get_wrksz()
write(0,*) 'Debug allocate_wrk: ',nwv
call psb_geasb(lv%wrk%vx2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vy2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vtx,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vty,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
end subroutine c_base_onelev_allocate_wrk
@@ -597,6 +611,10 @@ contains
!
integer(psb_ipk_) :: nwv
info = psb_success_
call lv%wrk%vx2l%free(info)
call lv%wrk%vy2l%free(info)
call lv%wrk%vtx%free(info)
call lv%wrk%vty%free(info)
end subroutine c_base_onelev_free_wrk
end module mld_c_onelev_mod
+21 -3
View File
@@ -552,11 +552,12 @@ contains
!
! Now for the ML application itself
!
! We have VTX/VTY/VX2L/VY2L
! VTX/VTY/VX2L/VY2L are stored explicitly
!
val = val + 4
!
! plus some additions for specific ML/cycles
! additions for specific ML/cycles
!
select case(lv%parms%ml_cycle)
case(mld_add_ml_,mld_mult_ml_,mld_vcycle_ml_, mld_wcycle_ml_)
@@ -586,6 +587,19 @@ contains
info = psb_success_
nwv = lv%get_wrksz()
write(0,*) 'Debug allocate_wrk: ',nwv
call psb_geasb(lv%wrk%vx2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vy2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vtx,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vty,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
end subroutine d_base_onelev_allocate_wrk
@@ -597,6 +611,10 @@ contains
!
integer(psb_ipk_) :: nwv
info = psb_success_
call lv%wrk%vx2l%free(info)
call lv%wrk%vy2l%free(info)
call lv%wrk%vtx%free(info)
call lv%wrk%vty%free(info)
end subroutine d_base_onelev_free_wrk
end module mld_d_onelev_mod
+21 -3
View File
@@ -552,11 +552,12 @@ contains
!
! Now for the ML application itself
!
! We have VTX/VTY/VX2L/VY2L
! VTX/VTY/VX2L/VY2L are stored explicitly
!
val = val + 4
!
! plus some additions for specific ML/cycles
! additions for specific ML/cycles
!
select case(lv%parms%ml_cycle)
case(mld_add_ml_,mld_mult_ml_,mld_vcycle_ml_, mld_wcycle_ml_)
@@ -586,6 +587,19 @@ contains
info = psb_success_
nwv = lv%get_wrksz()
write(0,*) 'Debug allocate_wrk: ',nwv
call psb_geasb(lv%wrk%vx2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vy2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vtx,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vty,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
end subroutine s_base_onelev_allocate_wrk
@@ -597,6 +611,10 @@ contains
!
integer(psb_ipk_) :: nwv
info = psb_success_
call lv%wrk%vx2l%free(info)
call lv%wrk%vy2l%free(info)
call lv%wrk%vtx%free(info)
call lv%wrk%vty%free(info)
end subroutine s_base_onelev_free_wrk
end module mld_s_onelev_mod
+21 -3
View File
@@ -552,11 +552,12 @@ contains
!
! Now for the ML application itself
!
! We have VTX/VTY/VX2L/VY2L
! VTX/VTY/VX2L/VY2L are stored explicitly
!
val = val + 4
!
! plus some additions for specific ML/cycles
! additions for specific ML/cycles
!
select case(lv%parms%ml_cycle)
case(mld_add_ml_,mld_mult_ml_,mld_vcycle_ml_, mld_wcycle_ml_)
@@ -586,6 +587,19 @@ contains
info = psb_success_
nwv = lv%get_wrksz()
write(0,*) 'Debug allocate_wrk: ',nwv
call psb_geasb(lv%wrk%vx2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vy2l,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vtx,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
call psb_geasb(lv%wrk%vty,&
& lv%base_desc,info,&
& scratch=.true.,mold=vmold)
end subroutine z_base_onelev_allocate_wrk
@@ -597,6 +611,10 @@ contains
!
integer(psb_ipk_) :: nwv
info = psb_success_
call lv%wrk%vx2l%free(info)
call lv%wrk%vy2l%free(info)
call lv%wrk%vtx%free(info)
call lv%wrk%vty%free(info)
end subroutine z_base_onelev_free_wrk
end module mld_z_onelev_mod