Blockstructured Adaptive Mesh Refinement in object-oriented C++
00001 #ifndef AMROC_CLP_FUNCTIONS2_H 00002 #define AMROC_CLP_FUNCTIONS2_H 00003 00022 #define f_initial FORTRAN_NAME(ic_, IC, ic) 00023 extern "C" { 00024 void f_initial(const INTEGER& maxmx, const INTEGER& maxmy, 00025 const INTEGER& meqn, const INTEGER& mbc, 00026 const INTEGER& mx, const INTEGER& my, 00027 const DOUBLE x[], const DOUBLE y[], 00028 const DOUBLE& dx, const DOUBLE& dy, 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(2,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, \ 00070 const INTEGER& meqn, const INTEGER& mbc, \ 00071 const INTEGER& ibx, const INTEGER& iby, \ 00072 const INTEGER& mx, const INTEGER& my, 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, \ 00099 const INTEGER& meqn, const INTEGER& mbc, \ 00100 const INTEGER& ibx, const INTEGER& iby, \ 00101 const INTEGER& mx, const INTEGER& my, Vector_type q[], \ 00102 DOUBLE aux[], const INTEGER& maux, \ 00103 const DOUBLE& cornx, const DOUBLE& corny, \ 00104 const DOUBLE& dx, const DOUBLE& dy, \ 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& maxm, const INTEGER& meqn, \ 00140 const INTEGER& mwaves, const INTEGER& mbc, const INTEGER& mx, \ 00141 const DOUBLE ql[], const DOUBLE qr[], \ 00142 const INTEGER& maux, const DOUBLE aux1[], const DOUBLE aux2[], \ 00143 const DOUBLE aux3[], const INTEGER& imp, \ 00144 DOUBLE asdq[], DOUBLE amdq[], DOUBLE apdq[] ) 00145 typedef void (*transverse_func_type) TRANSVERSE_FUNC_PARAMETER_LIST; 00146 00147 #define CHECK_FUNC_PARAMETER_LIST ( \ 00148 FI(2,Vector_type), BI, const INTEGER& meqn, INTEGER& result ) 00149 00174 #define f_step FORTRAN_NAME(step2_, STEP2, step2) 00175 extern "C" { 00176 void f_step(const INTEGER& maxm, const INTEGER& maxmx, const INTEGER& maxmy, 00177 const INTEGER& mvar, const INTEGER& meqn, 00178 const INTEGER& maux, const INTEGER& mwaves, const INTEGER& mbc, 00179 const INTEGER& mx,const INTEGER& my, 00180 Vector_type qold[], const DOUBLE aux[], 00181 const DOUBLE& dx, const DOUBLE& dy, const DOUBLE& dt, 00182 INTEGER method[], INTEGER mthlim[], DOUBLE& cfl, 00183 Vector_type fm[], Vector_type fp[], 00184 Vector_type gm[], Vector_type gp[], 00185 DOUBLE fm[], DOUBLE fp[], 00186 DOUBLE gm[], DOUBLE gp[], 00187 DOUBLE q1d[], DOUBLE dtdx1d[], DOUBLE dtdy1d[], 00188 DOUBLE aux1[], DOUBLE aux2[], DOUBLE aux3[], 00189 DOUBLE work[], const INTEGER& mwork, 00190 normal_func_type rpn, transverse_func_type rpt); 00191 } 00192 00193 #define f_init_rcommon FORTRAN_NAME(rcombl_, RCOMBL, rcombl) 00194 extern "C" { 00195 void f_init_rcommon(const DOUBLE& t, const DOUBLE& dt, 00196 const DOUBLE& dx, const DOUBLE& dy, 00197 const INTEGER& mpass); 00198 } 00199 00200 #define f_restrict_amr FORTRAN_NAME(restrict2_, RESTRICT2, restrict2) 00201 extern "C" 00202 { 00203 void f_restrict_amr (FI(2,Vector_type), FI(2,Vector_type), BI, char *, INTEGER *); 00204 } 00205 00206 #define f_prolong_amr FORTRAN_NAME(prolong2_, PROLONG2, prolong2) 00207 extern "C" 00208 { 00209 void f_prolong_amr (FI(2,Vector_type), FI(2,Vector_type), BI, char *, INTEGER *); 00210 } 00211 00212 #define f_init_opcommon FORTRAN_NAME(opcombl_, OPCOMBL, opcombl) 00213 extern "C" { 00214 void f_init_opcommon(const INTEGER& gc); 00215 } 00216 00217 #define f_rcflx FORTRAN_NAME(rcflx_, RCFLX, rcflx) 00218 extern "C" { 00219 void f_rcflx(const INTEGER& mflx); 00220 } 00221 00222 #endif
Quickstart Users Guide Programmers Reference Installation Examples Download
AMROC Main Home Contactlast update: 06/01/04