c---------------------------------------------------------------------
c     FDVM specifications
c---------------------------------------------------------------------
      integer p_u_ir(maxlevel)  !p_u_ir(k)  ≡ u(ir(k))
      integer p_r_ir(maxlevel)  !p_u_ir(k)  ≡ r(ir(k))
      integer pu                !pu ≡ u(lt) ≡ p_u_ir(lt)
      integer pr                !pr ≡ r(lt) ≡ p_r_ir(lt)
      integer pv                !pv ≡ v
      
      integer p_curr_u_k        !p_curr_u_k ≡ u(k)
      integer p_curr_u_j        !p_curr_u_j ≡ u(j)      
      
      integer p_curr_r_k        !p_curr_r_k ≡ r(k)
      integer p_curr_r_j        !p_curr_r_j ≡ r(j)
      
      common /pointers/ p_u_ir, p_r_ir
      common /pointers/ pu, pr, pv
      common /pointers/ p_curr_r_j, p_curr_r_k
      common /pointers/ p_curr_u_j, p_curr_u_k
      
CDVM$  DOUBLE PRECISION, POINTER(:,:,:) :: p_u_ir, p_r_ir,
CDVM$& pu, pr, pv,
CDVM$& p_curr_r_j, p_curr_r_k,
CDVM$& p_curr_u_j, p_curr_u_k

CDVM$ ALIGN :: pu, pr, pv,
CDVM$& p_u_ir, p_r_ir,
CDVM$& p_curr_r_k, p_curr_r_j, 
CDVM$& p_curr_u_k, p_curr_u_j

CDVM$ DYNAMIC p_u_ir, p_r_ir, 
CDVM$& pu, pr, pv,
CDVM$& p_curr_r_j, p_curr_r_k, 
CDVM$& p_curr_u_j, p_curr_u_k    	 

CDVM$ SHADOW pu(1:1,1:1,1:1) 
CDVM$ SHADOW pr(1:1,1:1,1:1)     

CDVM$ SHADOW p_curr_r_k(1:1,1:1,1:1) 	
CDVM$ SHADOW p_curr_u_k(1:1,1:1,1:1) 
CDVM$ SHADOW p_curr_u_j(1:1,1:1,1:1) 
     
CDVM$ TEMPLATE EXT (nv1, nv2, nv3)       
CDVM$ DISTRIBUTE EXT (BLOCK, BLOCK, BLOCK)
      
c---------------------------------------------------------------------
c  Distribution from programm
c---------------------------------------------------------------------      
      double precision u(nr), r(nr)
      double precision v(nv)  
      
      common /noautom/ u,r,v
CDVM$ HEAP u, r, v    

      double precision a(0:3), c(0:3)
      common /coefficients/ a,c
CDVM$ DISTRIBUTE (*) :: a, c      