110167291SKenneth E. Jansen #include <stdio.h>
210167291SKenneth E. Jansen #include <mpi.h>
310167291SKenneth E. Jansen
410167291SKenneth E. Jansen #include "common_c.h"
510167291SKenneth E. Jansen
610167291SKenneth E. Jansen #include <FCMangle.h>
710167291SKenneth E. Jansen #define gtnods FortranCInterface_GLOBAL_(gtnods, GTNODS)
810167291SKenneth E. Jansen
gtnods()910167291SKenneth E. Jansen void gtnods()
1010167291SKenneth E. Jansen {
1110167291SKenneth E. Jansen
1210167291SKenneth E. Jansen if(workfc.numpe > 1) {
1310167291SKenneth E. Jansen
1410167291SKenneth E. Jansen int irecvcount, ierr;
1510167291SKenneth E. Jansen long long numvec, loc_nshgt;
1610167291SKenneth E. Jansen
1710167291SKenneth E. Jansen irecvcount = 1;
1810167291SKenneth E. Jansen numvec = (long long) newdim.nshg0;
1910167291SKenneth E. Jansen
2010167291SKenneth E. Jansen // printf("Local number of modes = %ld %d %d\n",numvec,newdim.nshg0, sizeof(newdim.nshg0));
2110167291SKenneth E. Jansen
2210167291SKenneth E. Jansen ierr = MPI_Allreduce(&numvec, &loc_nshgt, irecvcount,
2310167291SKenneth E. Jansen MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
2410167291SKenneth E. Jansen
2510167291SKenneth E. Jansen newdim.nshgt = loc_nshgt;
2610167291SKenneth E. Jansen }
2710167291SKenneth E. Jansen else {
28*c90fc7c7SKenneth E. Jansen newdim.nshgt = (long long) conpar.nshg;
2910167291SKenneth E. Jansen }
3010167291SKenneth E. Jansen
3110167291SKenneth E. Jansen if (workfc.myrank == workfc.master) {
3210167291SKenneth E. Jansen printf("Total number of modes = %ld\n",newdim.nshgt);
3310167291SKenneth E. Jansen }
3410167291SKenneth E. Jansen
3510167291SKenneth E. Jansen }
36