summaryrefslogtreecommitdiff
path: root/src/comm/CactusSync.c
blob: 59eb77b9d551d674d5ca8c7e3504853510e4e867 (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
#include <stdlib.h>
#include "cctk_Flesh.h"
#include "cctk_FortranString.h"
#include "cctk_Comm.h"
#include "cctk_Groups.h"


 /*@@
   @file      CactusSync.c
   @date      Thu Sep  18 14:27:18 1999
   @author    Gerd Lanfermann
   @desc 
   A collection of SyncGroup routines: Sync a group by the GROUP INDEX, 
   by the group's VARIABLE NAME, by the group's VARIABLE INDEX.

   It ends up calling CCTK_SyncGroup(GH,groupname), which is overloaded (currently
   by PUGH).
   
   @enddesc 
 @@*/

void CCTK_SyncGroupI(cGH *GH, int gi) {
  char *groupname = CCTK_GroupName(gi);

  CCTK_SyncGroup(GH,groupname);
  free(groupname);
}

void FMODIFIER FORTRAN_NAME(CCTK_SyncGroupI)(cGH *GH, int *gi) {
  CCTK_SyncGroupI(GH, *gi);
}



void CCTK_SyncGroupWithVar(cGH *GH, const char *impvarname) {
  int gi;
  gi = CCTK_GroupIndexFromVarI(CCTK_VarIndex(impvarname));
  CCTK_SyncGroupI(GH,gi);
}

void FMODIFIER FORTRAN_NAME(CCTK_SyncGroupWithVar)(cGH *GH, ONE_FORTSTRING_ARG) {
  ONE_FORTSTRING_CREATE(impvarname);
  CCTK_SyncGroupWithVar(GH,impvarname);
  free(impvarname);
}



void CCTK_SyncGroupWithVarI(cGH *GH, int vi) {
  int gi;
  gi = CCTK_GroupIndexFromVarI(vi);
  CCTK_SyncGroupI(GH,gi);
}

void FMODIFIER FORTRAN_NAME(CCTK_SyncGroupWithVarI)(cGH *GH, int *vi) {
  CCTK_SyncGroupWithVarI(GH,*vi);
}