This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2013:groups:sm:blha:api [2013/07/26 16:06] johann_felix.graf_von_sodenfraunhofen Interface adapted to new BLHA2 draft |
2013:groups:sm:blha:api [2013/08/14 11:37] johann_felix.graf_von_sodenfraunhofen OLP_Polvec added, C++ reference version adapted. |
||
---|---|---|---|
Line 13: | Line 13: | ||
void OLP_Start(char* fname, int* ierr); | void OLP_Start(char* fname, int* ierr); | ||
- | void OLP_SetParameter(char* line, double* real_part, double *cmplx_part, int* status); | + | void OLP_SetParameter(char* line, double* real_part, double* cmplx_part, int* status); |
- | void OLP_EvalSubProcess2(int l, double* mom, double mu, double* r, double* acc); | + | void OLP_EvalSubProcess2(int* l, double* mom, double* mu, double* r, double* acc); |
void OLP_Info(char olp_name[15], char olp_version[15], char cite_message[255]); | void OLP_Info(char olp_name[15], char olp_version[15], char cite_message[255]); | ||
+ | void OLP_Polvec(double* p, double* q, double* eps); // optional | ||
#ifdef __cplusplus | #ifdef __cplusplus | ||
Line 33: | Line 34: | ||
void OLP_Start(char* fname, int &ierr); | void OLP_Start(char* fname, int &ierr); | ||
void OLP_SetParameter(char* line, double& real_part, double& cmplx_part, int& status); | void OLP_SetParameter(char* line, double& real_part, double& cmplx_part, int& status); | ||
- | void OLP_EvalSubProcess2(int l, double mom[], double mu, double r[], double &acc); | + | void OLP_EvalSubProcess2(int* l, double mom[], double* mu, double r[], double &acc); |
void OLP_Info(char olp_name[15], char olp_version[15], char cite_message[255]); | void OLP_Info(char olp_name[15], char olp_version[15], char cite_message[255]); | ||
+ | void OLP_Polvec(double p[], double q[], double eps[]); // optional | ||
} | } | ||
Line 48: | Line 50: | ||
implicit none | implicit none | ||
public :: OLP_Start, OLP_EvalSubProcess2, OLP_SetParameter | public :: OLP_Start, OLP_EvalSubProcess2, OLP_SetParameter | ||
+ | public :: OLP_Info, OLP_Polvec | ||
contains | contains | ||
Line 90: | Line 93: | ||
use, intrinsic :: iso_c_binding | use, intrinsic :: iso_c_binding | ||
implicit none | implicit none | ||
- | integer(kind=c_int), value, intent(in) :: label | + | integer(kind=c_int), intent(in) :: label |
- | real(kind=c_double), value, intent(in) :: mu | + | real(kind=c_double), intent(in) :: mu |
real(kind=c_double), dimension(50), intent(in) :: momenta | real(kind=c_double), dimension(50), intent(in) :: momenta | ||
- | real(kind=c_double), dimension(4), intent(out) :: res | + | real(kind=c_double), dimension(60), intent(out) :: res |
real(kind=c_double), dimension(1), intent(out) :: acc | real(kind=c_double), dimension(1), intent(out) :: acc | ||
Line 110: | Line 113: | ||
end subroutine OLP_Info | end subroutine OLP_Info | ||
+ | |||
+ | subroutine OLP_Polvec(p, q, eps) & | ||
+ | & bind(C,name="OLP_PolVec") | ||
+ | use, intrinsic :: iso_c_binding | ||
+ | implicit none | ||
+ | real(ki), dimension(4), intent(in) :: p,q | ||
+ | real(ki), dimension(8), intent(out) :: eps | ||
+ | |||
+ | !.... optional | ||
+ | | ||
+ | end subroutine OLP_Polvec | ||
end module olp | end module olp | ||
</code> | </code> | ||