Defines | |
#define | CHOMBO_VERSION_MAJOR 3 |
#define | CHOMBO_VERSION_MINOR 0 |
#define | FORTRAN_NAME(NAME,name) |
Used to declare a fortran routine in a portable way. | |
#define | CHF_MULTIDO(box, i, j, k) |
Used in ChomboFortran to write dimension-independent loops. | |
#define | CHF_ENDDO |
#define | CHF_INT(i) &i |
#define | CHF_CONST_INT(i) &i |
#define | CHF_REAL(r) &r |
#define | CHF_CONST_REAL(r) &r |
#define | CHF_COMPLEX(c) &c |
#define | CHF_CONST_COMPLEX(c) &c |
#define | CHF_I1D(ia, dimen) ia,(const int*)chfptr(dimen-1) |
#define | CHF_CONST_I1D(ia, dimen) ia,(const int*)chfptr(dimen-1) |
#define | CHF_R1D(ra, dimen) ra,(const int*)chfptr(dimen-1) |
#define | CHF_CONST_R1D(ra, dimen) ra,(const int*)chfptr(dimen-1) |
#define | CHF_C1D(ra, dimen) ra,(const int*)chfptr(dimen-1) |
#define | CHF_CONST_C1D(ra, dimen) ra,(const int*)chfptr(dimen-1) |
#define | CHF_INTVECT(a) a.dataPtr( ) |
#define | CHF_CONST_INTVECT(a) a.dataPtr( ) |
#define | CHF_REALVECT(a) a.dataPtr( ) |
#define | CHF_CONST_REALVECT(a) a.dataPtr( ) |
#define | CHF_COMPLEXVECT(a) a.dataPtr( ) |
#define | CHF_CONST_COMPLEXVECT(a) a.dataPtr( ) |
#define | CHF_VI(v) &v[0],(const int*)chfptr(v.size()-1) |
#define | CHF_CONST_VI(v) &v[0],(const int*)chfptr(v.size()-1) |
#define | CHF_VR(v) &v[0],(const int*)chfptr(v.size()-1) |
#define | CHF_CONST_VR(v) &v[0],(const int*)chfptr(v.size()-1) |
#define | CHF_VC(v) &v[0],(const int*)chfptr(v.size()-1) |
#define | CHF_CONST_VC(v) &v[0],(const int*)chfptr(v.size()-1) |
#define | CHF_BOX(b) |
#define | CHF_FIA(a) |
#define | CHF_FRA(a) |
#define | CHF_FRA_SHIFT(a, iv) |
#define | CHF_FCA(a) |
#define | CHF_CONST_FIA(a) |
#define | CHF_CONST_FRA(a) |
#define | CHF_CONST_FRA_SHIFT(a, iv) |
#define | CHF_CONST_FCA(a) |
#define | CHF_FIA1(a, n) |
#define | CHF_FRA1(a, n) |
#define | CHF_FCA1(a, n) |
#define | CHF_CONST_FIA1(a, n) |
#define | CHF_CONST_FRA1(a, n) |
#define | CHF_CONST_FCA1(a, n) |
#define | CH_SPACEDIM |
#define | CH_SPACEDIM 3 |
#define CHOMBO_VERSION_MAJOR 3 |
The major version number of Chombo -- an integer.
The Chombo version number has the form:
#define CHOMBO_VERSION_MINOR 0 |
The minor version number of Chombo -- an integer.
#define FORTRAN_NAME | ( | NAME, | |||
name | ) |
Used to declare a fortran routine in a portable way.
Used in ChomboFortran to write dimension-independent loops.
CHF_MULTIDO is used to iterate over a box in a dimension independent fashion by setting up nested Fortran do loops and CHF_ENDDO is used to terminate those do loops correctly. Specifically, CHF_MULTIDO[box;i;j;k] will generate a do loop for i nested inside a do loop for j and, in 3D, this will be nested inside a do loop for k. The i loop will go from first element of the low corner of box to the first element of the high corner of box. Similarly, the { j} loop will use the second element and, in 3D, the k loop will use the third element. CHF_ENDDO will end all the do loops set up by CHF_MULTIDO.
Here is an example using these macros:
subroutine LOOP(CHF_FRA1[array],CHF_BOX[box]) integer CHF_DDECL[i;j;k] integer productsum productsum = 0 CHF_MULTIDO[box;i;j;k] productsum = productsum + i*j*k array(CHF_IX[i;j;k]) = productsum CHF_ENDDO return end
see the section of the Chombo Design document about Chombo Fortran for a more detailed use of macros in Fortran
#define CHF_ENDDO |
#define CHF_REAL | ( | r | ) | &r |
#define CHF_CONST_REAL | ( | r | ) | &r |
#define CHF_COMPLEX | ( | c | ) | &c |
#define CHF_CONST_COMPLEX | ( | c | ) | &c |
#define CHF_I1D | ( | ia, | |||
dimen | ) | ia,(const int*)chfptr(dimen-1) |
#define CHF_CONST_I1D | ( | ia, | |||
dimen | ) | ia,(const int*)chfptr(dimen-1) |
#define CHF_R1D | ( | ra, | |||
dimen | ) | ra,(const int*)chfptr(dimen-1) |
#define CHF_CONST_R1D | ( | ra, | |||
dimen | ) | ra,(const int*)chfptr(dimen-1) |
#define CHF_C1D | ( | ra, | |||
dimen | ) | ra,(const int*)chfptr(dimen-1) |
#define CHF_CONST_C1D | ( | ra, | |||
dimen | ) | ra,(const int*)chfptr(dimen-1) |
#define CHF_INTVECT | ( | a | ) | a.dataPtr( ) |
#define CHF_CONST_INTVECT | ( | a | ) | a.dataPtr( ) |
#define CHF_REALVECT | ( | a | ) | a.dataPtr( ) |
#define CHF_CONST_REALVECT | ( | a | ) | a.dataPtr( ) |
#define CHF_COMPLEXVECT | ( | a | ) | a.dataPtr( ) |
#define CHF_CONST_COMPLEXVECT | ( | a | ) | a.dataPtr( ) |
#define CHF_VI | ( | v | ) | &v[0],(const int*)chfptr(v.size()-1) |
#define CHF_CONST_VI | ( | v | ) | &v[0],(const int*)chfptr(v.size()-1) |
#define CHF_VR | ( | v | ) | &v[0],(const int*)chfptr(v.size()-1) |
#define CHF_CONST_VR | ( | v | ) | &v[0],(const int*)chfptr(v.size()-1) |
#define CHF_VC | ( | v | ) | &v[0],(const int*)chfptr(v.size()-1) |
#define CHF_CONST_VC | ( | v | ) | &v[0],(const int*)chfptr(v.size()-1) |
#define CHF_BOX | ( | b | ) |
Value:
D_DECL6( &b.loVect()[0] \ ,&b.loVect()[1] \ ,&b.loVect()[2] \ ,&b.loVect()[3] \ ,&b.loVect()[4] \ ,&b.loVect()[5] ) \ ,D_DECL6( &b.hiVect()[0] \ ,&b.hiVect()[1] \ ,&b.hiVect()[2] \ ,&b.hiVect()[3] \ ,&b.hiVect()[4] \ ,&b.hiVect()[5] )
#define CHF_FIA | ( | a | ) |
Value:
a.dataPtr( 0 ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] ) \ ,a.nCompPtr()
#define CHF_FRA | ( | a | ) |
Value:
a.dataPtr( 0 ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] ) \ ,a.nCompPtr()
#define CHF_FRA_SHIFT | ( | a, | |||
iv | ) |
Value:
a.dataPtr( 0 ), \ D_DECL6( CHFPTR(a.loVect()[0] - iv[0]), \ CHFPTR(a.loVect()[1] - iv[1]), \ CHFPTR(a.loVect()[2] - iv[2]), \ CHFPTR(a.loVect()[0] - iv[3]), \ CHFPTR(a.loVect()[1] - iv[4]), \ CHFPTR(a.loVect()[2] - iv[5])) \ ,D_DECL6( CHFPTR(a.hiVect()[0] - iv[0]), \ CHFPTR(a.hiVect()[1] - iv[1]), \ CHFPTR(a.hiVect()[2] - iv[2]), \ CHFPTR(a.hiVect()[0] - iv[3]), \ CHFPTR(a.hiVect()[1] - iv[4]), \ CHFPTR(a.hiVect()[2] - iv[5])) \ ,a.nCompPtr()
#define CHF_FCA | ( | a | ) |
Value:
a.dataPtr( 0 ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] ) \ ,a.nCompPtr()
#define CHF_CONST_FIA | ( | a | ) |
Value:
a.dataPtr( 0 ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] ) \ ,a.nCompPtr()
#define CHF_CONST_FRA | ( | a | ) |
Value:
a.dataPtr( 0 ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] ) \ ,a.nCompPtr()
#define CHF_CONST_FRA_SHIFT | ( | a, | |||
iv | ) |
Value:
a.dataPtr( 0 ), \ D_DECL6( CHFPTR(a.loVect()[0] - iv[0]), \ CHFPTR(a.loVect()[1] - iv[1]), \ CHFPTR(a.loVect()[2] - iv[2]), \ CHFPTR(a.loVect()[0] - iv[3]), \ CHFPTR(a.loVect()[1] - iv[4]), \ CHFPTR(a.loVect()[2] - iv[5])) \ ,D_DECL6( CHFPTR(a.hiVect()[0] - iv[0]), \ CHFPTR(a.hiVect()[1] - iv[1]), \ CHFPTR(a.hiVect()[2] - iv[2]), \ CHFPTR(a.hiVect()[3] - iv[3]), \ CHFPTR(a.hiVect()[4] - iv[4]), \ CHFPTR(a.hiVect()[5] - iv[5])) \ ,a.nCompPtr()
#define CHF_CONST_FCA | ( | a | ) |
Value:
a.dataPtr( 0 ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] ) \ ,a.nCompPtr()
#define CHF_FIA1 | ( | a, | |||
n | ) |
Value:
a.dataPtr( n ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] )
#define CHF_FRA1 | ( | a, | |||
n | ) |
Value:
a.dataPtr( n ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] )
#define CHF_FCA1 | ( | a, | |||
n | ) |
Value:
a.dataPtr( n ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] )
#define CHF_CONST_FIA1 | ( | a, | |||
n | ) |
Value:
a.dataPtr( n ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] )
#define CHF_CONST_FRA1 | ( | a, | |||
n | ) |
Value:
a.dataPtr( n ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[3] \ ,&a.loVect()[4] \ ,&a.loVect()[5] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] )
#define CHF_CONST_FCA1 | ( | a, | |||
n | ) |
Value:
a.dataPtr( n ) \ ,D_DECL6( &a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] \ ,&a.loVect()[0] \ ,&a.loVect()[1] \ ,&a.loVect()[2] ) \ ,D_DECL6( &a.hiVect()[0] \ ,&a.hiVect()[1] \ ,&a.hiVect()[2] \ ,&a.hiVect()[3] \ ,&a.hiVect()[4] \ ,&a.hiVect()[5] )
#define CH_SPACEDIM |
compile-time cpp macro that controls the dimensionality of the Chombo package.
Referenced by MultiGrid< T >::define(), IVSFAB< T >::define(), LevelData< T >::degenerate(), GraphNodeImplem::index(), IndexType::nodeCentered(), IndexType::ok(), and IndexType::setall().
#define CH_SPACEDIM 3 |
compile-time cpp macro that controls the dimensionality of the Chombo package.