tree.f90 3.6 KB

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