aboutsummaryrefslogtreecommitdiff
path: root/src/macro/DZDB_guts.h
blob: 75b708e455adcd6ec77d37c7fa28722977a71ba1 (plain)
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
/*@@
  @header   DZDB_guts.h
  @date     Jun 98
  @author   Gabrielle Allen
  @desc

  Macro to calculate the first derivatives of the 
  shift with respect to z

  The macro is defined in terms of standard variables in
  @seefile DZDB_declare.h
  @enddesc
@@*/

#ifndef DZDB_GUTS
#define DZDB_GUTS

#ifdef FCODE 

      DZDB_OO2DZ = 1D0/(2D0*DZDB_DZ)
    
      if (admmacros_advectionz .eq. 0) then /* CENTER */

        DZDB_DZDBX = DZDB_OO2DZ*(DZDB_BX_KP - DZDB_BX_KM)

      else if (admmacros_advectionz .eq. 1) then /* UPWIND1 */

        DZDB_DZDBX = (DZDB_BX_KP - DZDB_BX)/DZDB_DZ

      else if (admmacros_advectionz .eq. -1) then /* UPWIND1 */

        DZDB_DZDBX = (DZDB_BX - DZDB_BX_KM)/DZDB_DZ

      else if (admmacros_advectionz .eq. 2) then /* UPWIND2 */
     
        DZDB_DZDBX = - 0.5D0/DZDB_DZ \
          *(3.0D0*DZDB_BX - 4.0D0*DZDB_BX_KP + DZDB_BX_KPP)     

      else if (admmacros_advectionz .eq. -2) then /* UPWIND2 */

         DZDB_DZDBX =  0.5D0/DZDB_DZ \
          *(3.0D0*DZDB_BX - 4.0D0*DZDB_BX_KM + DZDB_BX_KMM)
 
      end if

      if (admmacros_advectionz .eq. 0) then /* CENTER */

        DZDB_DZDBY = DZDB_OO2DZ*(DZDB_BY_KP - DZDB_BY_KM)

      else if (admmacros_advectionz .eq. 1) then /* UPWIND1 */

        DZDB_DZDBY = (DZDB_BY_KP - DZDB_BY)/DZDB_DZ

      else if (admmacros_advectionz .eq. -1) then /* UPWIND1 */

        DZDB_DZDBY = (DZDB_BY - DZDB_BY_KM)/DZDB_DZ

      else if (admmacros_advectionz .eq. 2) then /* UPWIND2 */
     
        DZDB_DZDBY = - 0.5D0/DZDB_DZ \
          *(3.0D0*DZDB_BY - 4.0D0*DZDB_BY_KP + DZDB_BY_KPP)     

      else if (admmacros_advectionz .eq. -2) then /* UPWIND2 */

         DZDB_DZDBY =  0.5D0/DZDB_DZ \
          *(3.0D0*DZDB_BY - 4.0D0*DZDB_BY_KM + DZDB_BY_KMM)

      end if

      if (admmacros_advectionz .eq. 0) then /* CENTER */

        DZDB_DZDBZ = DZDB_OO2DZ*(DZDB_BZ_KP - DZDB_BZ_KM)

      else if (admmacros_advectionz .eq. 1) then /* UPWIND1 */

        DZDB_DZDBZ = (DZDB_BZ_KP - DZDB_BZ)/DZDB_DZ

      else if (admmacros_advectionz .eq. -1) then /* UPWIND1 */

        DZDB_DZDBZ = (DZDB_BZ - DZDB_BZ_KM)/DZDB_DZ

      else if (admmacros_advectionz .eq. 2) then /* UPWIND2 */
     
        DZDB_DZDBZ = - 0.5D0/DZDB_DZ \
          *(3.0D0*DZDB_BZ - 4.0D0*DZDB_BZ_KP + DZDB_BZ_KPP)     

      else if (admmacros_advectionz .eq. -2) then /* UPWIND2 */

         DZDB_DZDBZ =  0.5D0/DZDB_DZ \
          *(3.0D0*DZDB_BZ - 4.0D0*DZDB_BZ_KM + DZDB_BZ_KMM)

      end if

#endif

#ifdef CCODE

      DZDB_OO2DZ = 1/(2*cctkGH->cctk_delta_space[2]);
    
      DZDB_DZDBX = DZDB_OO2DZ*(DZDB_BX_KP - DZDB_BX_KM);
      DZDB_DZDBY = DZDB_OO2DZ*(DZDB_BY_KP - DZDB_BY_KM);
      DZDB_DZDBZ = DZDB_OO2DZ*(DZDB_BZ_KP - DZDB_BZ_KM);

#endif

#endif