From 8084e367842a11294a1bf389a262c2780d0486be Mon Sep 17 00:00:00 2001 From: oawile <oawile@7c7fe9aa-52eb-4d9e-b0a8-ba7d787348e9> Date: Wed, 17 Mar 2010 19:15:42 +0000 Subject: [PATCH] - resolved #33 replacing nsublist by topoid argument, otherwise the user would have to get nsublist by access ppmcore internal DS git-svn-id: https://ppm.inf.ethz.ch/svn/ppmnumerics/branches/ngtopo/libppmnumerics@600 7c7fe9aa-52eb-4d9e-b0a8-ba7d787348e9 --- src/ppm_comp_pp_cell.f | 65 ++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/src/ppm_comp_pp_cell.f b/src/ppm_comp_pp_cell.f index 6c4aa77..ea76896 100644 --- a/src/ppm_comp_pp_cell.f +++ b/src/ppm_comp_pp_cell.f @@ -8,45 +8,45 @@ #if __KERNEL == __INTERNAL #if __KIND == __SINGLE_PRECISION - SUBROUTINE ppm_comp_pp_cell_si(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_si(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar, & + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __DOUBLE_PRECISION - SUBROUTINE ppm_comp_pp_cell_di(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_di(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar, & + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __SINGLE_PRECISION_COMPLEX - SUBROUTINE ppm_comp_pp_cell_sci(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_sci(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar,& + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __DOUBLE_PRECISION_COMPLEX - SUBROUTINE ppm_comp_pp_cell_dci(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_dci(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar,& + & Nm,clist,cutoff2,dpd,info) #endif #elif __KERNEL == __USER_FUNCTION #if __KIND == __SINGLE_PRECISION - SUBROUTINE ppm_comp_pp_cell_su(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_su(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar, & + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __DOUBLE_PRECISION - SUBROUTINE ppm_comp_pp_cell_du(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_du(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar, & + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __SINGLE_PRECISION_COMPLEX - SUBROUTINE ppm_comp_pp_cell_scu(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_scu(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar,& + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __DOUBLE_PRECISION_COMPLEX - SUBROUTINE ppm_comp_pp_cell_dcu(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_dcu(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar,& + & Nm,clist,cutoff2,dpd,info) #endif #elif __KERNEL == __LOOKUP_TABLE #if __KIND == __SINGLE_PRECISION - SUBROUTINE ppm_comp_pp_cell_st(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_st(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar, & + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __DOUBLE_PRECISION - SUBROUTINE ppm_comp_pp_cell_dt(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_dt(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar, & + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __SINGLE_PRECISION_COMPLEX - SUBROUTINE ppm_comp_pp_cell_sct(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_sct(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar,& + & Nm,clist,cutoff2,dpd,info) #elif __KIND == __DOUBLE_PRECISION_COMPLEX - SUBROUTINE ppm_comp_pp_cell_dct(xp,Np,pdata,lda,lsymm,kernel,kpar, & - & nsublist,Nm,clist,cutoff2,dpd,info) + SUBROUTINE ppm_comp_pp_cell_dct(topoid,xp,Np,pdata,lda,lsymm,kernel,kpar,& + & Nm,clist,cutoff2,dpd,info) #endif #endif !!! This routine computes kernel interactions by direct @@ -77,6 +77,7 @@ ! Modules !------------------------------------------------------------------------- USE ppm_module_data + USE ppm_module_check_topoid USE ppm_module_data_neighlist USE ppm_module_substart USE ppm_module_substop @@ -95,6 +96,9 @@ !------------------------------------------------------------------------- ! Arguments !------------------------------------------------------------------------- + INTEGER :: topoid + !!! The ID of the topology currently mapped to (needed to get number + !!! of subdomains on local processor) REAL(MK) , DIMENSION(:,:), INTENT(IN ) :: xp !!! particle co-ordinates #if __KIND == __SINGLE_PRECISION | __KIND == __DOUBLE_PRECISION @@ -118,8 +122,6 @@ !!! number of particles on this proc. INTEGER , INTENT(IN ) :: lda !!! lading dimension of pdata. - INTEGER , INTENT(IN ) :: nsublist - !!! number of subdomains on the local processor #if __KERNEL == __INTERNAL INTEGER , INTENT(IN ) :: kernel !!! kernel to be used for PP interactions. To use ppm-internal @@ -177,6 +179,9 @@ !------------------------------------------------------------------------- ! Local variables !------------------------------------------------------------------------- + INTEGER :: nsublist + ! number of subdomains on the local processor + ! counters INTEGER :: i,idom,ibox,jbox,idx INTEGER :: ipart,jpart,ip,jp @@ -201,6 +206,7 @@ INTEGER, SAVE :: nnp ! cell offsets for box index INTEGER :: n1,n2,nz + LOGICAL :: valid REAL(MK) :: t0 !------------------------------------------------------------------------- ! Externals @@ -266,10 +272,11 @@ & 'lda must be >0',__LINE__,info) GOTO 9999 ENDIF - IF (nsublist .LT. 0) THEN + CALL ppm_check_topoid(topoid,valid,info) + IF (.NOT. valid) THEN info = ppm_error_error CALL ppm_error(ppm_err_argument,'ppm_comp_pp_cell', & - & 'nsublist must be >=0',__LINE__,info) + & 'Topology ID not valid',__LINE__,info) GOTO 9999 ENDIF IF (cutoff2 .LT. 0.0_MK) THEN @@ -288,6 +295,8 @@ #endif ENDIF + nsublist = ppm_topo(topoid)%t%nsublist + !------------------------------------------------------------------------- ! Build interaction index lists !------------------------------------------------------------------------- -- GitLab