summaryrefslogtreecommitdiff
path: root/src/comm/CactusSync.c
blob: 1d3c162bc7e473888ba0335d0a2b2a948e5c0e89 (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 groupi) {
  char *groupname = CCTK_GroupName(groupi);

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

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



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

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



void CCTK_SyncGroupWithVarI(cGH *GH, int vari) {
  int groupi;
  groupi = CCTK_GroupIndexFromVarI(vari);
  CCTK_SyncGroupI(GH,groupi);
}

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