Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Functions | Variables
fcrystal.c File Reference
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "c99.h"
#include "name.h"
#include "fail.h"
#include "types.h"
#include "mem.h"
#include "comm.h"
#include "crystal.h"
#include "sort.h"
#include "sarray_sort.h"
#include "sarray_transfer.h"
+ Include dependency graph for fcrystal.c:

Go to the source code of this file.

Macros

#define ccrystal_free   PREFIXED_NAME(crystal_free)
 
#define fcrystal_setup   FORTRAN_NAME(crystal_setup ,CRYSTAL_SETUP )
 
#define fcrystal_ituple_sort   FORTRAN_NAME(crystal_ituple_sort ,CRYSTAL_ITUPLE_SORT )
 
#define fcrystal_tuple_sort   FORTRAN_NAME(crystal_tuple_sort ,CRYSTAL_TUPLE_SORT )
 
#define fcrystal_ituple_transfer   FORTRAN_NAME(crystal_ituple_transfer,CRYSTAL_ITUPLE_TRANSFER)
 
#define fcrystal_tuple_transfer   FORTRAN_NAME(crystal_tuple_transfer ,CRYSTAL_TUPLE_TRANSFER )
 
#define fcrystal_free   FORTRAN_NAME(crystal_free ,CRYSTAL_FREE )
 
#define CHECK_HANDLE(func)
 

Functions

void fcrystal_setup (sint *handle, const MPI_Fint *comm, const sint *np)
 
void fcrystal_ituple_sort (const sint *handle, sint A[], const sint *m, const sint *n, const sint keys[], const sint *nkey)
 
void fcrystal_tuple_sort (const sint *const handle, const sint *const n, sint Ai[], const sint *const mi, slong Al[], const sint *const ml, double Ad[], const sint *const md, const sint keys[], const sint *const nkey)
 
void fcrystal_ituple_transfer (const sint *handle, sint A[], const sint *m, sint *n, const sint *nmax, const sint *proc_key)
 
void fcrystal_tuple_transfer (const sint *const handle, sint *const n, const sint *const max, sint Ai[], const sint *const mi, slong Al[], const sint *const ml, double Ad[], const sint *const md, const sint *const proc_key)
 
void fcrystal_free (sint *handle)
 

Variables

static struct crystal ** handle_array = 0
 
static int handle_max = 0
 
static int handle_n = 0
 

Macro Definition Documentation

#define ccrystal_free   PREFIXED_NAME(crystal_free)

Definition at line 68 of file fcrystal.c.

Referenced by fcrystal_free().

#define CHECK_HANDLE (   func)
Value:
do \
fail(1,__FILE__,__LINE__,func ": invalid handle"); \
while(0)
static struct crystal ** handle_array
Definition: fcrystal.c:83
static int handle_n
Definition: fcrystal.c:85
void fail(int status, const char *file, unsigned line, const char *fmt,...)
Definition: fail.c:47

Definition at line 100 of file fcrystal.c.

Referenced by fcrystal_free(), fcrystal_ituple_sort(), fcrystal_ituple_transfer(), fcrystal_tuple_sort(), and fcrystal_tuple_transfer().

#define fcrystal_free   FORTRAN_NAME(crystal_free ,CRYSTAL_FREE )

Definition at line 80 of file fcrystal.c.

#define fcrystal_ituple_sort   FORTRAN_NAME(crystal_ituple_sort ,CRYSTAL_ITUPLE_SORT )

Definition at line 72 of file fcrystal.c.

#define fcrystal_ituple_transfer   FORTRAN_NAME(crystal_ituple_transfer,CRYSTAL_ITUPLE_TRANSFER)

Definition at line 76 of file fcrystal.c.

#define fcrystal_setup   FORTRAN_NAME(crystal_setup ,CRYSTAL_SETUP )

Definition at line 70 of file fcrystal.c.

#define fcrystal_tuple_sort   FORTRAN_NAME(crystal_tuple_sort ,CRYSTAL_TUPLE_SORT )

Definition at line 74 of file fcrystal.c.

#define fcrystal_tuple_transfer   FORTRAN_NAME(crystal_tuple_transfer ,CRYSTAL_TUPLE_TRANSFER )

Definition at line 78 of file fcrystal.c.

Function Documentation

void fcrystal_free ( sint handle)

Definition at line 183 of file fcrystal.c.

References ccrystal_free, and CHECK_HANDLE.

void fcrystal_ituple_sort ( const sint handle,
sint  A[],
const sint m,
const sint n,
const sint  keys[],
const sint nkey 
)

Definition at line 105 of file fcrystal.c.

References ALIGNOF, CHECK_HANDLE, crystal::data, sarray_permute_buf_, sint, sortp(), and uint.

+ Here is the call graph for this function:

void fcrystal_ituple_transfer ( const sint handle,
sint  A[],
const sint m,
sint n,
const sint nmax,
const sint proc_key 
)

Definition at line 150 of file fcrystal.c.

References A, CHECK_HANDLE, array::max, n, array::n, array::ptr, sarray_transfer_many, sint, and uint.

void fcrystal_setup ( sint handle,
const MPI_Fint comm,
const sint np 
)
void fcrystal_tuple_sort ( const sint *const  handle,
const sint *const  n,
sint  Ai[],
const sint *const  mi,
slong  Al[],
const sint *const  ml,
double  Ad[],
const sint *const  md,
const sint  keys[],
const sint *const  nkey 
)

Definition at line 122 of file fcrystal.c.

References ALIGNOF, CHECK_HANDLE, crystal::data, fail(), sarray_permute_buf_, sint, slong, sortp(), sortp_long, uint, and ulong.

+ Here is the call graph for this function:

void fcrystal_tuple_transfer ( const sint *const  handle,
sint *const  n,
const sint *const  max,
sint  Ai[],
const sint *const  mi,
slong  Al[],
const sint *const  ml,
double  Ad[],
const sint *const  md,
const sint *const  proc_key 
)

Definition at line 162 of file fcrystal.c.

References Ai, CHECK_HANDLE, array::max, n, array::n, array::ptr, sarray_transfer_many, sint, slong, and uint.

Variable Documentation

struct crystal** handle_array = 0
static

Definition at line 83 of file fcrystal.c.

int handle_max = 0
static

Definition at line 84 of file fcrystal.c.

Referenced by fcrystal_setup().

int handle_n = 0
static

Definition at line 85 of file fcrystal.c.

Referenced by fcrystal_setup().