! part3d_lib module for QuickPIC Open Source 1.0 ! update: 04/18/2016 module part3d_lib implicit none ! interface subroutine PRVDIST32_RANDOM(part,qm,edges,npp,nps,vtx,vty,vtz,vdx,& &vdy,vdz,npx,npy,npz,nx,ny,nz,ipbc,idimp,npmax,mblok,nblok,idps& &,sigx,sigy,sigz,x0,y0,z0,cx,cy,lquiet,ierr) implicit none integer, intent(in) :: npmax,nblok,npx,npy,npz,idimp,nx,ny,nz,i& &dps,mblok,ipbc integer, intent(inout) :: nps,npp,ierr real, intent(in) :: qm,sigx,sigy,sigz,x0,y0,z0,cx,cy,edges,vtx,vty& &,vtz,vdx,vdy,vdz real, intent(inout) :: part logical, intent(in) :: lquiet dimension part(idimp,npmax,nblok) dimension edges(idps,nblok) dimension cx(0:2),cy(0:2) end subroutine end interface ! interface subroutine PGPOST32L(part,q,npp,noff,idimp,npmax,mnblok,nxv,& &nypmx,nzpmx,idds) implicit none integer, intent(in) :: npp,noff,idimp,npmax,mnblok,nxv,nypmx,nz& &pmx,idds real, intent(inout) :: part real, intent(inout) :: q dimension part(idimp,npmax,mnblok), q(nxv,nypmx,nzpmx,mnblok) dimension noff(idds,mnblok) end subroutine end interface ! interface subroutine PGBPUSH32L_QP(part,fxyz,bxyz,npp,noff,qbm,dt,dtc,ek,& &nx,ny,nz,idimp,npmax,mnblok,nxv,nypmx,nzpmx,idds,ipbc,deltax,d& &eltaz,cofd) implicit none real, intent(inout) :: part integer, intent(inout) :: npp real, intent(inout) :: fxyz,bxyz real, intent(in) :: qbm,dt,dtc,ek,deltax,deltaz,cofd integer, intent(in) :: noff,nx,ny,nz,idimp,npmax,mnblok,nxv,nyp& &mx,nzpmx,idds,ipbc dimension part(idimp,npmax,mnblok) dimension fxyz(3,nxv,nypmx,nzpmx,mnblok) dimension bxyz(3,nxv,nypmx,nzpmx,mnblok) dimension noff(idds,mnblok) end subroutine end interface ! interface subroutine PMOVE32(part,edges,npp,sbufr,sbufl,rbufr,rbufl,ihole& &,pbuff,jsr,jsl,jss,ny,nz,kstrt,nvpy,nvpz,idimp,npmax,mblok,nbl& &ok,idps,nbmax,idds,ntmax,tag1,tag2,id,info) implicit none real, intent(inout) :: part, pbuff real, intent(in) :: edges, sbufr, sbufl, rbufr, rbufl integer, intent(inout) :: npp, id, info integer, intent(in) :: ihole, jsr, jsl, jss integer, intent(in) :: ny, nz, kstrt, nvpy, nvpz, idimp, npmax integer, intent(in) :: idps, nbmax, idds, ntmax, mblok, nblok integer, intent(in) :: tag1, tag2 dimension part(idimp,npmax,mblok*nblok) dimension pbuff(idimp,nbmax) dimension edges(idps,mblok*nblok) dimension sbufl(idimp,nbmax,mblok*nblok) dimension sbufr(idimp,nbmax,mblok*nblok) dimension rbufl(idimp,nbmax,mblok*nblok) dimension rbufr(idimp,nbmax,mblok*nblok) dimension jsl(idds,mblok*nblok), jsr(idds,mblok*nblok) dimension jss(idds,mblok*nblok) dimension ihole(ntmax,mblok*nblok) dimension info(9) end subroutine end interface ! end module part3d_lib