!
!  memory_pointers.f90
!
! Memory pointer location
!
module memory_pointers
    use memory_layout    
!
! Hardcoded maximum number of stored pointers
    integer, parameter :: ncoef_max=400,nphys_max=400,ntask_max=20,ncell_max=30,nint_max=2000
!
    type (coef) :: coef_ptrs(ncoef_max) 
    save coef_ptrs 
!
    type (physics) :: phys_ptrs(nphys_max)      
    save phys_ptrs
!
    type (task) :: task_ptrs(ntask_max)  
    save task_ptrs
!
    type (cell) :: cell_ptrs(ncell_max) 
    save cell_ptrs
!
    type (interface) :: int_ptrs(nint_max)        
    save int_ptrs
!
! Count of stored pointers
    integer ncoef,nphys,ntask,ncell,nint
    save ncoef,nphys,ntask,ncell,nint
!
! Next pointer locations
    integer pphys_real,pphys_int,pphys_char
    save pphys_real,pphys_int,pphys_char
!
    integer p_real,p_int,p_char,p_dble
    save p_real,p_int,p_char,p_dble
!
end module memory_pointers    