Blockstructured Adaptive Mesh Refinement in object-oriented C++
00001 #ifndef AMROC_CLP_FUNCTIONS3_H 00002 #define AMROC_CLP_FUNCTIONS3_H 00003 00022 #define f_initial FORTRAN_NAME(ic_, IC, ic) 00023 extern "C" { 00024 void f_initial(const INTEGER& maxmx, const INTEGER& maxmy, const INTEGER& maxmz, 00025 const INTEGER& meqn, const INTEGER& mbc, 00026 const INTEGER& mx, const INTEGER& my, const INTEGER& mz, 00027 const DOUBLE x[], const DOUBLE y[], const DOUBLE z[], 00028 const DOUBLE& dx, const DOUBLE& dy, const DOUBLE& dz, 00029 Vector_type q[]); 00030 } 00031 00036 #define f_init_common FORTRAN_NAME(combl_, COMBL, combl) 00037 extern "C" { 00038 void f_init_common(); 00039 } 00040 00060 #define f_boundary FORTRAN_NAME(physbd_, PHYSBD, physbd) 00061 extern "C" { 00062 void f_boundary(FI(3,Vector_type), BI, const DOUBLE *, 00063 const DOUBLE *, const INTEGER *, 00064 const DOUBLE *, const INTEGER *, 00065 const DOUBLE *, char *, const INTEGER *); 00066 } 00067 00068 #define SOURCE_PARAMETER_LIST ( \ 00069 const INTEGER& maxmx, const INTEGER& maxmy, const INTEGER& maxmz, \ 00070 const INTEGER& meqn, const INTEGER& mbc, \ 00071 const INTEGER& ibx, const INTEGER& iby, const INTEGER& ibz, \ 00072 const INTEGER& mx, const INTEGER& my, const INTEGER& mz, Vector_type q[], \ 00073 const DOUBLE aux[], const INTEGER& maux, \ 00074 const DOUBLE& t, const DOUBLE& dt, const INTEGER& ibnd) 00075 typedef void (*source_func_type) SOURCE_PARAMETER_LIST; 00076 00092 #define f_source FORTRAN_NAME(src_, SRC, src) 00093 extern "C" { 00094 void f_source SOURCE_PARAMETER_LIST; 00095 } 00096 00097 #define SETAUX_PARAMETER_LIST ( \ 00098 const INTEGER& maxmx, const INTEGER& maxmy, const INTEGER& maxmz, \ 00099 const INTEGER& meqn, const INTEGER& mbc, \ 00100 const INTEGER& ibx, const INTEGER& iby, const INTEGER& ibz, \ 00101 const INTEGER& mx, const INTEGER& my, const INTEGER& mz, Vector_type q[], \ 00102 DOUBLE aux[], const INTEGER& maux, \ 00103 const DOUBLE& cornx, const DOUBLE& corny, const DOUBLE& cornz, \ 00104 const DOUBLE& dx, const DOUBLE& dy, const DOUBLE& dz, \ 00105 const DOUBLE& t, const DOUBLE& dt) 00106 typedef void (*setaux_func_type) SETAUX_PARAMETER_LIST; 00107 00124 #define f_setaux FORTRAN_NAME(setaux_, SETAUX, setaux) 00125 extern "C" { 00126 void f_setaux SETAUX_PARAMETER_LIST; 00127 } 00128 00129 #define NORMAL_FUNC_PARAMETER_LIST ( \ 00130 const INTEGER& ixyz, const INTEGER& maxm, const INTEGER& meqn, \ 00131 const INTEGER& mwaves, const INTEGER& mbc, const INTEGER& mx, \ 00132 const DOUBLE ql[], const DOUBLE qr[], \ 00133 const INTEGER& maux, const DOUBLE auxl[], const DOUBLE auxr[], \ 00134 DOUBLE wave[], DOUBLE s[], \ 00135 DOUBLE amdq[], DOUBLE apdq[] ) 00136 typedef void (*normal_func_type) NORMAL_FUNC_PARAMETER_LIST; 00137 00138 #define TRANSVERSE_FUNC_PARAMETER_LIST ( \ 00139 const INTEGER& ixyz, const INTEGER& icoor, \ 00140 const INTEGER& maxm, const INTEGER& meqn, \ 00141 const INTEGER& mwaves, const INTEGER& mbc, const INTEGER& mx, \ 00142 const DOUBLE ql[], const DOUBLE qr[], \ 00143 const INTEGER& maux, const DOUBLE aux1[], \ 00144 const DOUBLE aux2[], const DOUBLE aux3[], \ 00145 const INTEGER& ilr, DOUBLE asdq[], \ 00146 DOUBLE bmasdq[], DOUBLE bpasdq[] ) 00147 typedef void (*transverse_func_type) TRANSVERSE_FUNC_PARAMETER_LIST; 00148 00149 #define CHECK_FUNC_PARAMETER_LIST ( \ 00150 FI(3,Vector_type), BI, const INTEGER& meqn, INTEGER& result ) 00151 00176 #define f_step FORTRAN_NAME(step3_, STEP3, step3) 00177 extern "C" { 00178 void f_step(const INTEGER& maxm, const INTEGER& maxmx, 00179 const INTEGER& maxmy, const INTEGER& maxmz, 00180 const INTEGER& mvar, const INTEGER& meqn, 00181 const INTEGER& maux, const INTEGER& mwaves, const INTEGER& mbc, 00182 const INTEGER& mx, const INTEGER& my, const INTEGER& mz, 00183 Vector_type qold[], const DOUBLE aux[], 00184 const DOUBLE& dx, const DOUBLE& dy, const DOUBLE& dz, 00185 const DOUBLE& dt, INTEGER method[], 00186 INTEGER mthlim[], DOUBLE& cfl, 00187 Vector_type fm[], Vector_type fp[], 00188 Vector_type gm[], Vector_type gp[], 00189 Vector_type hm[], Vector_type hp[], 00190 DOUBLE faddm[], DOUBLE faddp[], 00191 DOUBLE gaddm[], DOUBLE gaddp[], 00192 DOUBLE haddm[], DOUBLE haddp[], 00193 DOUBLE q1d[], 00194 DOUBLE dtdx1d[], DOUBLE dtdy1d[], DOUBLE dtdz1d[], 00195 DOUBLE aux1[], DOUBLE aux2[], DOUBLE aux3[], 00196 DOUBLE work[], const INTEGER& mwork, 00197 normal_func_type rpn, transverse_func_type rpt); 00198 } 00199 00200 #define f_init_rcommon FORTRAN_NAME(rcombl_, RCOMBL, rcombl) 00201 extern "C" { 00202 void f_init_rcommon(const DOUBLE& t, const DOUBLE& dt, 00203 const DOUBLE& dx, const DOUBLE& dy, const DOUBLE& dz, 00204 const INTEGER& mpass); 00205 } 00206 00207 #define f_restrict_amr FORTRAN_NAME(restrict3_, RESTRICT3, restrict3) 00208 extern "C" 00209 { 00210 void f_restrict_amr (FI(3,Vector_type), FI(3,Vector_type), BI, char *, INTEGER *); 00211 } 00212 00213 #define f_prolong_amr FORTRAN_NAME(prolong3_, PROLONG3, prolong3) 00214 extern "C" 00215 { 00216 void f_prolong_amr (FI(3,Vector_type), FI(3,Vector_type), BI, char *, INTEGER *); 00217 } 00218 00219 #define f_init_opcommon FORTRAN_NAME(opcombl_, OPCOMBL, opcombl) 00220 extern "C" { 00221 void f_init_opcommon(const INTEGER& gc); 00222 } 00223 00224 #define f_rcflx FORTRAN_NAME(rcflx_, RCFLX, rcflx) 00225 extern "C" { 00226 void f_rcflx(const INTEGER& mflx); 00227 } 00228 00229 #endif
Quickstart Users Guide Programmers Reference Installation Examples Download
AMROC Main Home Contactlast update: 06/01/04