#ifndef OP_INCLUDED #define OP_INCLUDED #include "fortran.h" #include "hamilton.h" /* elslist is needed */ /* declaration for the struture holding the Hamiltonian matrix. */ elslist els; /* Prototypes for functions in op.c These routines are *only* called by external fortran programs */ extern fsub elop(integer *, integer *, doublereal *, doublereal *); /* functions concerned with PLANDR2*/ #ifdef USE_MPI extern fsub OP(integer *n, doublereal *P, doublereal *Q, doublereal *R, integer *our_comm_world); /*R Answer, P and Q are Given*/ extern fsub OPM(integer *n, doublereal *x, doublereal *y, integer *our_comm_world); /*OPM receives X and returns M*X as Y, but M is the identity matrix so*/ extern fsub ZOP(integer *n, doublecomplex *P, doublecomplex *Q, doublecomplex *R, integer *our_comm_world); /*R Answer, P and Q are Given*/ extern fsub ZOPM(integer *n, doublecomplex *x, doublecomplex *y, integer *our_comm_world); /*OPM receives X and returns M*X as Y, but M is the identity matrix so*/ #else extern fsub OP(integer *n, doublereal *P, doublereal *Q, doublereal *R); /*R Answer, P and Q are Given*/ extern fsub OPM(integer *n, doublereal *x, doublereal *y); /*OPM receives X and returns M*X as Y, but M is the identity matrix so*/ extern fsub ZOP(integer *n, doublecomplex *P, doublecomplex *Q, doublecomplex *R); /*R Answer, P and Q are Given*/ extern fsub ZOPM(integer *n, doublecomplex *x, doublecomplex *y); /*OPM receives X and returns M*X as Y, but M is the identity matrix so*/ #endif #endif