bd_ax   |  
       double* for d_commit_Helmholtz_2D/d_commit_Helmholtz_3D and d_Helmholtz_2D/d_Helmholtz_3D,   float* for s_commit_Helmholtz_2D/s_commit_Helmholtz_3D and s_Helmholtz_2D/s_Helmholtz_3D.   Contains values of the boundary condition on the leftmost boundary of the domain along the x-axis.   
         
         2D problem: the size of the array is ny+1. Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[0] is 'D'): values of the function G(ax, yj), j=0, ..., ny.     
           Neumann boundary condition (value of BCtype[0] is 'N'): values of the function g(ax, yj), j=0, ..., ny.     
            The value corresponding to the index j is placed in bd_ax[j].     
         3D problem: the size of the array is (ny+1)*(nz+1). Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[0] is 'D'): values of the function G(ax, yj, zk), j=0, ..., ny, k=0, ..., nz.     
           Neumann boundary condition (value of BCtype[0] is 'N'): the values of the function g(ax, yj, zk), j=0, ..., ny, k=0, ..., nz.     
            The values are packed in the array so that the value corresponding to indices (j, k) is placed in bd_ax[j+k*(ny+1)].     
          For periodic boundary conditions (the value of BCtype[0] is 'P'), this parameter is not used, so it can accept a dummy pointer.    |  
      
 
       
       bd_bx   |  
       double* for d_commit_Helmholtz_2D/d_commit_Helmholtz_3D and d_Helmholtz_2D/d_Helmholtz_3D,   float* for s_commit_Helmholtz_2D/s_commit_Helmholtz_3D and s_Helmholtz_2D/s_Helmholtz_3D.   Contains values of the boundary condition on the rightmost boundary of the domain along the x-axis.   
         
         2D problem: the size of the array is ny+1. Its contents depend on the boundary conditions as follows:   
           
            Dirichlet boundary condition (value of BCtype[1] is 'D'): values of the function G(bx, yj), j=0, ..., ny.     
           Neumann boundary condition (value of BCtype[1] is 'N'): values of the function g(bx, yj), j=0, ..., ny.     
            The value corresponding to the index j is placed in bd_bx[j].     
         3D problem: the size of the array is (ny+1)*(nz+1). Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[1] is 'D'): values of the function G(bx, yj, zk), j=0, ..., ny, k=0, ..., nz.     
           Neumann boundary condition (value of BCtype[1] is 'N'): values of the function g(bx, yj, zk), j=0, ..., ny, k=0, ..., nz.     
            The values are packed in the array so that the value corresponding to indices (j, k) is placed in bd_bx[j+k*(ny+1)].     
          For periodic boundary conditions (the value of BCtype[1] is 'P'), this parameter is not used, so it can accept a dummy pointer.    |  
      
 
       
       bd_ay   |  
       double* for d_commit_Helmholtz_2D/d_commit_Helmholtz_3D and d_Helmholtz_2D/d_Helmholtz_3D,   float* for s_commit_Helmholtz_2D/s_commit_Helmholtz_3D and s_Helmholtz_2D/s_Helmholtz_3D.   Contains values of the boundary condition on the leftmost boundary of the domain along the y-axis.   
         
         2D problem: the size of the array is nx+1. Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[2] is 'D'): values of the function G(xi, ay), i=0, ..., nx.     
           Neumann boundary condition (value of BCtype[2] is 'N'): values of the function g(xi, ay), i=0, ..., nx.     
            The value corresponding to the index i is placed in bd_ay[i].     
         3D problem: the size of the array is (nx+1)*(nz+1). Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[2] is 'D'): values of the function G(xi,ay, zk), i=0, ..., nx, k=0, ..., nz.     
           Neumann boundary condition (value of BCtype[2] is 'N'): values of the function g(xi,ay, zk), i=0, ..., nx, k=0, ..., nz.     
            The values are packed in the array so that the value corresponding to indices (i, k) is placed in bd_ay[i+k*(nx+1)].     
          For periodic boundary conditions (the value of BCtype[2] is 'P'), this parameter is not used, so it can accept a dummy pointer.    |  
      
 
       
       bd_by   |  
       double* for d_commit_Helmholtz_2D/d_commit_Helmholtz_3D and d_Helmholtz_2D/d_Helmholtz_3D,   float* for s_commit_Helmholtz_2D/s_commit_Helmholtz_3D and s_Helmholtz_2D/s_Helmholtz_3D.   Contains values of the boundary condition on the rightmost boundary of the domain along the y-axis.   
         
         2D problem: the size of the array is nx+1. Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[3] is 'D'): values of the function G(xi, by), i=0, ..., nx.     
           Neumann boundary condition (value of BCtype[3] is 'N'): values of the function g(xi, by), i=0, ..., nx.     
            The value corresponding to the index i is placed in bd_by[i].     
         3D problem: the size of the array is (nx+1)*(nz+1). Its contents depend on the boundary conditions as follows:   
           
           Dirichlet boundary condition (value of BCtype[3] is 'D'): values of the function G(xi,by, zk), i=0, ..., nx, k=0, ..., nz.     
           Neumann boundary condition (value of BCtype[3] is 'N'): values of the function g(xi,by, zk), i=0, ..., nx, k=0, ..., nz.     
            The values are packed in the array so that the value corresponding to indices (i, k) is placed in bd_by[i+k*(nx+1)].     
          For periodic boundary conditions (the value of BCtype[3] is 'P'), this parameter is not used, so it can accept a dummy pointer.    |  
      
 
       
       bd_az   |  
       double* for d_commit_Helmholtz_3D and d_Helmholtz_3D,   float* for s_commit_Helmholtz_3D and s_Helmholtz_3D.   Used only by ?_commit_Helmholtz_3D and ?_Helmholtz_3D. Contains values of the boundary condition on the leftmost boundary of the domain along the z-axis.   The size of the array is (nx+1)*(ny+1). Its contents depend on the boundary conditions as follows:   
         
         Dirichlet boundary condition (value of BCtype[4] is 'D'): values of the function G(xi, yj,az), i=0, ..., nx, j=0, ..., ny.     
         Neumann boundary condition (value of BCtype[4] is 'N'), values of the function g(xi, yj,az), i=0, ..., nx, j=0, ..., ny.     
          The values are packed in the array so that the value corresponding to indices (i, j) is placed in bd_az[i+j*(nx+1)].   For periodic boundary conditions (the value of BCtype[4] is 'P'), this parameter is not used, so it can accept a dummy pointer.    |  
      
 
       
       bd_bz   |  
       double* for d_commit_Helmholtz_3D and d_Helmholtz_3D,   float* for s_commit_Helmholtz_3D and s_Helmholtz_3D.   Used only by ?_commit_Helmholtz_3D and ?_Helmholtz_3D. Contains values of the boundary condition on the rightmost boundary of the domain along the z-axis.   The size of the array is (nx+1)*(ny+1). Its contents depend on the boundary conditions as follows:   
         
         Dirichlet boundary condition (value of BCtype[5] is 'D'): values of the function G(xi, yj,bz), i=0, ..., nx, j=0, ..., ny.     
          Neumann boundary condition (value of BCtype[5] is 'N'): values of the function g(xi, yj,bz), i=0, ..., nx, j=0, ..., ny.     
          The values are packed in the array so that the value corresponding to indices (i, j) is placed in bd_bz[i+j*(nx+1)].   For periodic boundary conditions (the value of BCtype[5] is 'P'), this parameter is not used, so it can accept a dummy pointer.    |