Block-Structured AMR Software Framework
AMReX_BLFort.H
Go to the documentation of this file.
1
#ifndef AMREX_BLFORT_H_
2
#define AMREX_BLFORT_H_
3
#include <AMReX_Config.H>
4
5
#include <
AMReX_INT.H
>
6
#include <
AMReX_ArrayLim.H
>
7
#include <
AMReX_REAL.H
>
8
#include <
AMReX_SPACE.H
>
9
10
#ifndef BL_LANG_FORT
11
12
#if defined(BL_FORT_USE_UPPERCASE)
13
#define AMREX_FORT_NAME(A,B) A
14
#elif defined(BL_FORT_USE_LOWERCASE)
15
#define AMREX_FORT_NAME(A,B) B
16
#elif defined(BL_FORT_USE_UNDERSCORE)
17
#define AMREX_FORT_NAME(A,B) B##_
18
#elif !defined(BL_NO_FORT)
19
#error "One of BL_FORT_USE_{UPPERCASE,LOWERCASE,UNDERSCORE} must be defined"
20
#endif
21
22
#if defined(__cplusplus) && !defined(BL_NO_FORT)
23
#define BL_FORT_PROC_DECL(A,B) extern "C"
void AMREX_FORT_NAME(A,B)
24
#else
25
#define BL_FORT_PROC_DECL(A,B) void AMREX_FORT_NAME(A,B)
26
#endif
27
#define BL_FORT_PROC_CALL(A,B) AMREX_FORT_NAME(A,B)
28
#define BL_FORT_PROC_NAME(A,B) AMREX_FORT_NAME(A,B)
29
30
#define BL_FORT_FAB_ARG(A) amrex_real* A##_fab, AMREX_ARLIM_P(A##_lo), AMREX_ARLIM_P(A##_hi)
31
#define BL_FORT_IFAB_ARG(A) int* A##_fab, AMREX_ARLIM_P(A##_lo), AMREX_ARLIM_P(A##_hi)
32
#define BL_FORT_FAB_VAL_3D(A) A##_fab, A##_lo, A##_hi
33
#define BL_FORT_FAB_ARG_3D(A) amrex_real* A##_fab, const int* A##_lo, const int* A##_hi
34
#define BL_FORT_FAB_ARG_ANYD(A) amrex_real* A##_fab, const int* A##_lo, const int* A##_hi
35
#define BL_FORT_IFAB_ARG_3D(A) int* A##_fab, const int* A##_lo, const int* A##_hi
36
#define BL_FORT_IFAB_ARG_ANYD(A) int* A##_fab, const int* A##_lo, const int* A##_hi
37
38
#endif
39
40
#endif
AMReX_ArrayLim.H
AMReX_INT.H
AMReX_REAL.H
AMReX_SPACE.H
Src
Base
AMReX_BLFort.H
Generated by
1.9.1