Blockstructured Adaptive Mesh Refinement in object-oriented C++
00001 #ifndef AMROC_CLP_FUNCTIONS1_H 00002 #define AMROC_CLP_FUNCTIONS1_H 00003 00022 #define f_initial FORTRAN_NAME(ic_, IC, ic) 00023 extern "C" { 00024 void f_initial(const INTEGER& maxmx, 00025 const INTEGER& meqn, const INTEGER& mbc, 00026 const INTEGER& mx, 00027 const DOUBLE x[], 00028 const DOUBLE& dx, 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(1,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, \ 00070 const INTEGER& meqn, const INTEGER& mbc, \ 00071 const INTEGER& ibx, \ 00072 const INTEGER& mx, 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, \ 00099 const INTEGER& meqn, const INTEGER& mbc, \ 00100 const INTEGER& ibx, \ 00101 const INTEGER& mx, Vector_type q[], \ 00102 DOUBLE aux[], const INTEGER& maux, \ 00103 const DOUBLE& cornx, \ 00104 const DOUBLE& dx, \ 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& maxmx, 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 CHECK_FUNC_PARAMETER_LIST ( \ 00139 FI(1,Vector_type), BI, const INTEGER& meqn, INTEGER& result ) 00140 00163 #define f_step FORTRAN_NAME(step1_, STEP1, step1) 00164 extern "C" { 00165 void f_step(const INTEGER& maxmx, const INTEGER& mvar, const INTEGER& meqn, 00166 const INTEGER& maux, const INTEGER& mwaves, const INTEGER& mbc, 00167 const INTEGER& mx, 00168 Vector_type qold[], const DOUBLE aux[], 00169 const DOUBLE& dx, DOUBLE& dt, 00170 INTEGER method[], INTEGER mthlim[], DOUBLE& cfl, 00171 Vector_type fm[], Vector_type fp[], 00172 DOUBLE wave[], DOUBLE s[], 00173 DOUBLE amdq[], DOUBLE apdq[], 00174 DOUBLE dtdx[], DOUBLE aux1[], DOUBLE q1[], 00175 DOUBLE work[], const INTEGER& mwork, 00176 normal_func_type rpn); 00177 } 00178 00179 #define f_init_rcommon FORTRAN_NAME(rcombl_, RCOMBL, rcombl) 00180 extern "C" { 00181 void f_init_rcommon(const DOUBLE& t, const DOUBLE& dt, 00182 const DOUBLE& dx, const INTEGER& mpass); 00183 } 00184 00185 #define f_restrict_amr FORTRAN_NAME(restrict1_, RESTRICT1, restrict1) 00186 extern "C" 00187 { 00188 void f_restrict_amr (FI(1,Vector_type), FI(1,Vector_type), BI, char *, INTEGER *); 00189 } 00190 00191 #define f_prolong_amr FORTRAN_NAME(prolong1_, PROLONG1, prolong1) 00192 extern "C" 00193 { 00194 void f_prolong_amr (FI(1,Vector_type), FI(1,Vector_type), BI, char *, INTEGER *); 00195 } 00196 00197 #define f_init_opcommon FORTRAN_NAME(opcombl_, OPCOMBL, opcombl) 00198 extern "C" { 00199 void f_init_opcommon(const INTEGER& gc); 00200 } 00201 00202 #define f_rcflx FORTRAN_NAME(rcflx_, RCFLX, rcflx) 00203 extern "C" { 00204 void f_rcflx(const INTEGER& mflx); 00205 } 00206 00207 #endif
Quickstart Users Guide Programmers Reference Installation Examples Download
AMROC Main Home Contactlast update: 06/01/04