[Developers] [Patches] more efficient synchronisation of groups

Thomas Radke tradke at aei.mpg.de
Mon Jul 3 06:38:11 CDT 2006

Tom Goodale wrote:
> Looks good.  Just a few things to make the transition easier and safer:
> * This will eventually completely replace the current overloading of 
> CCTK_SyncGroup, so the default CCTK_SyncGroup should now call 
> CCTK_SyncGroupByDirI.
> * Overloading CCTK_SyncGroup should now produce a warning message saying 
> this is deprecated and they should overload CCTK_SyncGroupByDirI.
> * The default for CCTK_SyncGroupByDirI should check for a NULL directions 
> array and then call CCTK_SyncGroup in a loop if CCTK_SyncGroup has been 
> overloaded.  (This code will disappear once CCTK_SyncGroup is no longer 
> overloadable.)
> The intent of this is that drivers should only need to overload one of the 
> functions, we preserve the current behaviour for drivers which have not 
> been updated yet, and that we will be able to remove the overloading of 
> CCTK_SyncGroup once we are sure all drivers have converted to the new 
> mechanism.

Okay, sounds good. Do you want me to do this in a separate patch ?

I had an open question still on the argument types for 
CCTK_SyncGroupsI(), currently the prototype is:

   int CCTK_SyncGroupsI (const cGH *GH, int n_groups, const int *groups);

so the list of group indices is an int array. For fortran bindings, 
shouldn't it be CCTK_INT[] ? But then all the other fortran wrappers 
take 'int*' rather than 'CCTK_INT*' for passing a single group index. 
I'm a bit confused here: do we implicitely assume that a fortran integer 
is the same datatype as a C int ?

Cheers, Thomas.

More information about the Developers mailing list