modlinktomodel.F90 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. ! AGRIF (Adaptive Grid Refinement In Fortran)
  2. !
  3. ! Copyright (C) 2003 Laurent Debreu (Laurent.Debreu@imag.fr)
  4. ! Christophe Vouland (Christophe.Vouland@imag.fr)
  5. !
  6. ! This program is free software; you can redistribute it and/or modify
  7. ! it under the terms of the GNU General Public License as published by
  8. ! the Free Software Foundation; either version 2 of the License, or
  9. ! (at your option) any later version.
  10. !
  11. ! This program is distributed in the hope that it will be useful,
  12. ! but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ! GNU General Public License for more details.
  15. !
  16. ! You should have received a copy of the GNU General Public License
  17. ! along with this program; if not, write to the Free Software
  18. ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  19. !
  20. !
  21. !> Module Agrif_Link
  22. !>
  23. !> This module is used to link AGRIF files to the model.
  24. !
  25. module Agrif_Link
  26. !
  27. interface
  28. !
  29. subroutine Agrif_clustering_def ( )
  30. !
  31. end subroutine Agrif_clustering_def
  32. !
  33. subroutine Agrif_Set_numberofcells ( Agrif_Gr )
  34. use Agrif_Grids, only : Agrif_Grid
  35. type(Agrif_Grid), pointer :: Agrif_Gr !< Pointer on the current grid
  36. end subroutine Agrif_Set_numberofcells
  37. !
  38. subroutine Agrif_Get_numberofcells ( Agrif_Gr )
  39. use Agrif_Grids, only : Agrif_Grid
  40. type(Agrif_Grid), pointer :: Agrif_Gr !< Pointer on the current grid
  41. end subroutine Agrif_Get_numberofcells
  42. !
  43. end interface
  44. !
  45. abstract interface
  46. !
  47. subroutine alloc_proc ( Agrif_Gr )
  48. use Agrif_Grids, only : Agrif_Grid
  49. type(Agrif_Grid), pointer :: Agrif_Gr !< Pointer on the current grid
  50. end subroutine alloc_proc
  51. !
  52. subroutine typdef_proc ( )
  53. implicit none
  54. end subroutine typdef_proc
  55. !
  56. end interface
  57. procedure(alloc_proc) :: Agrif_Allocationcalls
  58. procedure(typdef_proc) :: Agrif_probdim_modtype_def
  59. !
  60. end module Agrif_Link
  61. !
  62. !===================================================================================================
  63. ! function Agrif_parent
  64. ! modify by conv. To use : un_parent = Agrif_Parent(un)
  65. !===================================================================================================
  66. ! function Agrif_Get_Coarse_Grid
  67. ! modify by conv. To use : un_Mygrid = Agrif_Get_Coarse_grid(un)
  68. !===================================================================================================
  69. ! function Agrif_Rhox
  70. ! modify by conv. To use : var = Agrif_Rhox()
  71. ! REAL(Agrif_Curgrid % spaceref(1))
  72. !===================================================================================================
  73. ! function Agrif_Parent_Rhox
  74. ! modify by conv. To use : var = Agrif_Parent_Rhox()
  75. ! REAL(Agrif_Curgrid % parent % spaceref(1))
  76. !===================================================================================================
  77. ! function Agrif_Irhox
  78. ! modify by conv. To use : var = Agrif_Parent_IRhox()
  79. ! Agrif_Curgrid % spaceref(1)
  80. !===================================================================================================
  81. ! function Agrif_Parent_Irhox
  82. ! modify by conv. To use : var = Agrif_Parent_IRhox()
  83. ! Agrif_Curgrid % parent % spaceref(1)
  84. !===================================================================================================
  85. ! function Agrif_Rhoy
  86. ! modify by conv. To use : var = Agrif_Rhoy()
  87. ! REAL(Agrif_Curgrid % spaceref(2))
  88. !===================================================================================================
  89. ! function Agrif_Parent_Rhoy
  90. ! modify by conv. To use : var = Agrif_Parent_Rhoy()
  91. ! REAL(Agrif_Curgrid % parent % spaceref(2))
  92. !===================================================================================================
  93. ! function Agrif_Irhoy
  94. ! modify by conv. To use : var = Agrif_Parent_IRhoy()
  95. ! Agrif_Curgrid % spaceref(2)
  96. !===================================================================================================
  97. ! function Agrif_Parent_Irhoy
  98. ! modify by conv. To use : var = Agrif_Parent_IRhoy()
  99. ! Agrif_Curgrid % parent % spaceref(2)
  100. !===================================================================================================
  101. ! function Agrif_Rhoz
  102. ! modify by conv. To use : var = Agrif_Rhoz()
  103. ! REAL(Agrif_Curgrid % spaceref(3))
  104. !===================================================================================================
  105. ! function Agrif_Parent_Rhoz
  106. ! modify by conv. To use : var = Agrif_Parent_Rhoz()
  107. ! REAL(Agrif_Curgrid % parent % spaceref(3))
  108. !===================================================================================================
  109. ! function Agrif_Irhoz
  110. ! modify by conv. To use : var = Agrif_Parent_IRhoz()
  111. ! Agrif_Curgrid % spaceref(3)
  112. !===================================================================================================
  113. ! function Agrif_Parent_Irhoz
  114. ! modify by conv. To use : var = Agrif_Parent_IRhoz()
  115. ! Agrif_Curgrid % parent % spaceref(3)
  116. !===================================================================================================
  117. ! function Agrif_NearCommonBorderX
  118. ! modify by conv. To use : var = Agrif_NearCommonBorderX()
  119. ! Agrif_Curgrid % NearRootBorder(1)
  120. !===================================================================================================
  121. ! function Agrif_NearCommonBorderY
  122. ! modify by conv. To use : var = Agrif_NearCommonBorderY()
  123. ! Agrif_Curgrid % NearRootBorder(2)
  124. !===================================================================================================
  125. ! function Agrif_NearCommonBorderZ
  126. ! modify by conv. To use : var = Agrif_NearCommonBorderZ()
  127. ! Agrif_Curgrid % NearRootBorder(3)
  128. !===================================================================================================
  129. ! function Agrif_DistantCommonBorderX
  130. ! modify by conv. To use : var = Agrif_DistantCommonBorderX()
  131. ! Agrif_Curgrid % DistantRootBorder(1)
  132. !===================================================================================================
  133. ! function Agrif_DistantCommonBorderY
  134. ! modify by conv. To use : var = Agrif_DistantCommonBorderY()
  135. ! Agrif_Curgrid % DistantRootBorder(2)
  136. !===================================================================================================
  137. ! function Agrif_DistantCommonBorderZ
  138. ! modify by conv. To use : var = Agrif_DistantCommonBorderZ()
  139. ! Agrif_Curgrid % DistantRootBorder(3)
  140. !===================================================================================================
  141. ! function Agrif_Nb_Step
  142. ! modify by conv. To use : var = Agrif_Nb_Step()
  143. ! Agrif_Curgrid % ngridstep
  144. !===================================================================================================
  145. ! function Agrif_Nb_Fine_Grids
  146. ! modify by conv. To use : var = Agrif_Nb_Fine_Grids()
  147. ! Agrif_nbfixedgrids
  148. !===================================================================================================
  149. ! function Agrif_Ix
  150. ! modify by conv. To use : var = Agrif_Ix()
  151. ! Agrif_Curgrid % ix(1)
  152. !===================================================================================================
  153. ! function Agrif_Parent_Ix
  154. ! modify by conv. To use : var = Agrif_Parent_Ix()
  155. ! Agrif_Curgrid % parent % ix(1)
  156. !===================================================================================================
  157. ! function Agrif_Iy
  158. ! modify by conv. To use : var = Agrif_Iy()
  159. ! Agrif_Curgrid % ix(2)
  160. !===================================================================================================
  161. ! function Agrif_Parent_Iy
  162. ! modify by conv. To use : var = Agrif_Parent_Iy()
  163. ! Agrif_Curgrid % parent % ix(2)
  164. !===================================================================================================
  165. ! function Agrif_Iz
  166. ! modify by conv. To use : var = Agrif_Iz()
  167. ! Agrif_Curgrid % ix(3)
  168. !===================================================================================================
  169. ! function Agrif_Parent_Iz
  170. ! modify by conv. To use : var = Agrif_Parent_Iz()
  171. ! Agrif_Curgrid % parent % ix(3)
  172. !===================================================================================================
  173. ! function Agrif_Get_grid_id
  174. ! modify by conv. To use : var = Agrif_Get_grid_id()
  175. ! Agrif_Curgrid % grid_id
  176. !===================================================================================================
  177. ! function Agrif_Get_parent_id
  178. ! modify by conv. To use : var = Agrif_Get_parent_id()
  179. ! Agrif_Curgrid % parent % grid_id
  180. !===================================================================================================