1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/*@@
@file GRHydro_RiemannSolve.F90
@date Sat Jan 26 02:20:25 2002
@author
@desc
A wrapper routine to call the correct Riemann solver
@enddesc
@@*/
#include "cctk.h"
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
#include "cctk_Functions.h"
#include "GRHydro_Macros.h"
/*@@
@routine RiemannSolve
@date Sat Jan 26 02:20:48 2002
@author Pedro Montero, Ian Hawke
@desc
A wrapper routine to switch between the different Riemann solvers.
@enddesc
@calls
@calledby
@history
@endhistory
@@*/
subroutine RiemannSolve(CCTK_ARGUMENTS)
implicit none
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
CCTK_INT :: i,j,k
if (CCTK_EQUALS(riemann_solver,"HLLE")) then
call GRHydro_HLLE(CCTK_PASS_FTOF)
if (evolve_tracer .ne. 0) then
call GRHydro_HLLE_Tracer(CCTK_PASS_FTOF)
end if
else if (CCTK_EQUALS(riemann_solver,"Roe")) then
call GRHydro_RoeSolve(CCTK_PASS_FTOF)
if (evolve_tracer .ne. 0) then
call GRHydro_HLLE_Tracer(CCTK_PASS_FTOF)
end if
else if (CCTK_EQUALS(riemann_solver,"Marquina")) then
call GRHydro_Marquina(CCTK_PASS_FTOF)
!!$ Tracers are built directly in to the Marquina solver
end if
end subroutine RiemannSolve
/*@@
@routine RiemannSolvePolytype
@date Tue Mar 19 11:40:20 2002
@author Ian Hawke
@desc
The same as above, just specializing to polytropic type EOS.
Currently there is no point to this routine right now.
@enddesc
@calls
@calledby
@history
@endhistory
@@*/
subroutine RiemannSolvePolytype(CCTK_ARGUMENTS)
implicit none
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
CCTK_INT :: i,j,k
if (CCTK_EQUALS(riemann_solver,"HLLE")) then
call GRHydro_HLLE(CCTK_PASS_FTOF)
if (evolve_tracer .ne. 0) then
call GRHydro_HLLE_Tracer(CCTK_PASS_FTOF)
end if
else if (CCTK_EQUALS(riemann_solver,"Roe")) then
call GRHydro_RoeSolve(CCTK_PASS_FTOF)
if (evolve_tracer .ne. 0) then
call GRHydro_HLLE_Tracer(CCTK_PASS_FTOF)
end if
else if (CCTK_EQUALS(riemann_solver,"Marquina")) then
call GRHydro_Marquina(CCTK_PASS_FTOF)
!!$ Tracers are built directly in to the Marquina solver
end if
end subroutine RiemannSolvePolytype
|