tree.f90 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. interface
  2. subroutine Createtree_(tree_ctx)
  3. use, intrinsic :: ISO_C_BINDING
  4. type(c_ptr), intent(out) :: tree_ctx
  5. end subroutine
  6. subroutine DeleteTree(tree_ctx)
  7. use, intrinsic :: ISO_C_BINDING
  8. type(c_ptr), intent(in) :: tree_ctx
  9. end subroutine
  10. subroutine GetTree(node_coord, parent_lst, child_lst, node_depth, node_ghost, node_leaf, Nnodes, tree_ctx)
  11. use, intrinsic :: ISO_C_BINDING
  12. type(c_ptr), intent(out) :: node_coord ! real*8, dimension(Nnode*3)
  13. type(c_ptr), intent(out) :: parent_lst ! integer*4, dimension(Nnode)
  14. type(c_ptr), intent(out) :: child_lst ! integer*4, dimension(Nnode*8)
  15. type(c_ptr), intent(out) :: node_depth ! integer*1, dimension(Nnode)
  16. type(c_ptr), intent(out) :: node_ghost ! integer*1, dimension(Nnode)
  17. type(c_ptr), intent(out) :: node_leaf ! integer*1, dimension(Nnode)
  18. integer*4 , intent(out) :: Nnodes
  19. type(c_ptr), intent(in) :: tree_ctx
  20. end subroutine
  21. subroutine UpdateRefinement(pt_coord, Npt, max_pts, level_restrict, periodic, tree_ctx)
  22. use, intrinsic :: ISO_C_BINDING
  23. real*8 , intent(in) :: pt_coord(*)
  24. integer*4 , intent(in) :: Npt
  25. integer*4 , intent(in) :: max_pts
  26. logical , intent(in) :: level_restrict
  27. logical , intent(in) :: periodic
  28. type(c_ptr), intent(in) :: tree_ctx
  29. end subroutine
  30. subroutine AddData(data_name, node_data, Ndata, cnt, Ncnt, tree_ctx)
  31. use, intrinsic :: ISO_C_BINDING
  32. character , intent(in) :: data_name(*)
  33. real*8 , intent(in) :: node_data(*)
  34. integer*4 , intent(in) :: Ndata
  35. integer*4 , intent(in) :: cnt(*)
  36. integer*4 , intent(in) :: Ncnt
  37. type(c_ptr), intent(in) :: tree_ctx
  38. end subroutine
  39. subroutine GetData(node_data, Ndata, cnt, Ncnt, data_name, tree_ctx)
  40. use, intrinsic :: ISO_C_BINDING
  41. type(c_ptr), intent(out) :: node_data ! real*8 , dimension(Ndata)
  42. integer*4 , intent(out) :: Ndata
  43. type(c_ptr), intent(out) :: cnt ! integer*4, dimension(Ncnt)
  44. integer*4 , intent(out) :: Ncnt
  45. character , intent(in) :: data_name(*)
  46. type(c_ptr), intent(in) :: tree_ctx
  47. end subroutine
  48. subroutine DeleteData(data_name, tree_ctx)
  49. use, intrinsic :: ISO_C_BINDING
  50. character , intent(in) :: data_name(*)
  51. type(c_ptr), intent(in) :: tree_ctx
  52. end subroutine
  53. subroutine WriteTreeVTK(fname, show_ghost, tree_ctx)
  54. use, intrinsic :: ISO_C_BINDING
  55. character , intent(in) :: fname(*)
  56. logical , intent(in) :: show_ghost
  57. type(c_ptr), intent(in) :: tree_ctx
  58. end subroutine
  59. subroutine AddParticles(pt_name, coord, Npt, tree_ctx)
  60. use, intrinsic :: ISO_C_BINDING
  61. character , intent(in) :: pt_name
  62. real*8 , intent(in) :: coord(*)
  63. integer*4 , intent(in) :: Npt
  64. type(c_ptr), intent(in) :: tree_ctx
  65. end subroutine
  66. subroutine AddParticleData(data_name, pt_name, pt_data, Ndata, tree_ctx)
  67. use, intrinsic :: ISO_C_BINDING
  68. character , intent(in) :: data_name(*)
  69. character , intent(in) :: pt_name(*)
  70. real*8 , intent(in) :: pt_data(*)
  71. integer*4 , intent(in) :: Ndata
  72. type(c_ptr), intent(in) :: tree_ctx
  73. end subroutine
  74. subroutine GetParticleData(pt_data, N, data_name, tree_ctx)
  75. use, intrinsic :: ISO_C_BINDING
  76. type(c_ptr), intent(out) :: pt_data ! real*8, dimension(N)
  77. integer*4 , intent(out) :: N
  78. character , intent(in) :: data_name(*)
  79. type(c_ptr), intent(in) :: tree_ctx
  80. end subroutine
  81. subroutine DeleteParticleData(data_name, tree_ctx)
  82. use, intrinsic :: ISO_C_BINDING
  83. character , intent(in) :: data_name
  84. type(c_ptr), intent(in) :: tree_ctx
  85. end subroutine
  86. subroutine WriteParticleVTK(fname, data_name, show_ghost, tree_ctx)
  87. use, intrinsic :: ISO_C_BINDING
  88. character , intent(in) :: fname(*)
  89. character , intent(in) :: data_name(*)
  90. logical , intent(in) :: show_ghost
  91. type(c_ptr), intent(in) :: tree_ctx
  92. end subroutine
  93. end interface