#include "Molecule.h"
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
#include "TclCommands.h"
#ifdef NAMD_TCL
int ComputeTclBC::Tcl_print(ClientData,
- Tcl_Interp *, int argc, char *argv[]) {
+ Tcl_Interp *, int argc, const char *argv[]) {
Tcl_DString msg;
Tcl_DStringInit(&msg);
for ( int i = 1; i < argc; ++i ) {
}
int ComputeTclBC::Tcl_wrapmode(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2) {
Tcl_SetResult(interp,"usage: wrapmode patch|input|cell|nearest",
TCL_VOLATILE);
#define COMPUTETCLBC_H
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
#ifdef NAMD_TCL
Tcl_Interp *interp;
- static int Tcl_print(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_wrapmode(ClientData, Tcl_Interp *, int, char **);
+ static int Tcl_print(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_wrapmode(ClientData, Tcl_Interp *, int, const char **);
static int Tcl_cleardrops(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_dropatom(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_nextatom(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
CPROXY_DE(CkpvAccess(BOCclass_group).dataExchanger)[CkMyPe()].recv_eval_result(msg);
}
- void replica_send(char *sndbuf, int sendcount, int destPart, int destPE) {
+ void replica_send(const char *sndbuf, int sendcount, int destPart, int destPE) {
if ( CpvAccess(inEval) ) {
packSend(destPE,destPart,sndbuf,sendcount,CkpvAccess(recv_data_idx),1);
return;
}
- Pointer sendPointer(sndbuf);
+ ConstPointer sendPointer(sndbuf);
CPROXY_DE(CkpvAccess(BOCclass_group).dataExchanger)[CkMyPe()].send(sendPointer,sendcount,destPart,destPE);
CpvAccess(breakScheduler) = 0;
while(!CpvAccess(breakScheduler)) CsdSchedulePoll();
while(!CpvAccess(breakScheduler)) CsdSchedulePoll();
}
- void replica_sendRecv(char *sndbuf, int sendcount, int destPart, int destPE, DataMessage **precvMsg, int srcPart, int srcPE) {
- Pointer sendPointer(sndbuf);
+ void replica_sendRecv(const char *sndbuf, int sendcount, int destPart, int destPE, DataMessage **precvMsg, int srcPart, int srcPE) {
+ ConstPointer sendPointer(sndbuf);
Pointer recvPointer((char *) precvMsg);
CPROXY_DE(CkpvAccess(BOCclass_group).dataExchanger)[CkMyPe()].sendRecv(sendPointer,sendcount,destPart,destPE,recvPointer,srcPart,srcPE);
CpvAccess(breakScheduler) = 0;
while(!CpvAccess(breakScheduler)) CsdSchedulePoll();
}
- void replica_eval(char *cmdbuf, int targPart, int targPE, DataMessage **precvMsg) {
- Pointer sendPointer(cmdbuf);
+ void replica_eval(const char *cmdbuf, int targPart, int targPE, DataMessage **precvMsg) {
+ ConstPointer sendPointer(cmdbuf);
Pointer recvPointer((char *) precvMsg);
int sendcount = strlen(cmdbuf) + 1;
CPROXY_DE(CkpvAccess(BOCclass_group).dataExchanger)[CkMyPe()].eval(sendPointer,sendcount,targPart,targPE,recvPointer);
entry void recv_red();
entry void recv_bcast();
- entry void send(Pointer srcPointer, int srcSize, int dstPart, int dst) {
+ entry void send(ConstPointer srcPointer, int srcSize, int dstPart, int dst) {
serial {
- packSend(dst,dstPart,(char*)srcPointer.data,srcSize,recv_data_idx);
+ packSend(dst,dstPart,(const char*)srcPointer.data,srcSize,recv_data_idx);
}
when recv_ack() serial {
CpvAccess(breakScheduler) = 1;
}
};
- entry void sendRecv(Pointer srcPointer, int srcSize, int dstPart, int dst, Pointer recvPointer, int srcPart, int src) {
+ entry void sendRecv(ConstPointer srcPointer, int srcSize, int dstPart, int dst, Pointer recvPointer, int srcPart, int src) {
serial {
- packSend(dst,dstPart,(char*)srcPointer.data,srcSize,recv_data_idx);
+ packSend(dst,dstPart,(const char*)srcPointer.data,srcSize,recv_data_idx);
loop = 1;
}
while(loop) {
}
};
- entry void eval(Pointer srcPointer, int srcSize, int dstPart, int dst, Pointer recvPointer) {
+ entry void eval(ConstPointer srcPointer, int srcSize, int dstPart, int dst, Pointer recvPointer) {
serial {
- packSend(dst,dstPart,(char*)srcPointer.data,srcSize,recv_eval_command_idx);
+ packSend(dst,dstPart,(const char*)srcPointer.data,srcSize,recv_eval_command_idx);
}
when recv_eval_result(Pointer p) serial {
DataMessage *dmsg = (DataMessage*)p.data;
void recvData(DataMessage *dmsg);
void recvAck(DataMessage *dmsg);
-void replica_send(char *sndbuf, int sendcount, int destPart, int destPE);
-void replica_sendRecv(char *sndbuf, int sendcount, int destPart, int destPE, DataMessage **precvMsg, int srcPart, int srcPE);
+void replica_send(const char *sndbuf, int sendcount, int destPart, int destPE);
+void replica_sendRecv(const char *sndbuf, int sendcount, int destPart, int destPE, DataMessage **precvMsg, int srcPart, int srcPE);
void replica_recv(DataMessage **precvMsg, int srcPart, int srcPE);
void replica_barrier();
void replica_bcast(char *buf, int count, int root=0);
void replica_min_double(double *dat, int count);
-void replica_eval(char *cmdbuf, int targPart, int targPE, DataMessage **precvMsg);
+void replica_eval(const char *cmdbuf, int targPart, int targPE, DataMessage **precvMsg);
}
#endif
#include "GlobalMasterTcl.h"
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
#ifdef NAMD_TCL
int GlobalMasterTcl::Tcl_print(ClientData,
- Tcl_Interp *, int argc, char *argv[]) {
+ Tcl_Interp *, int argc, const char *argv[]) {
int arglen = 1; int ai;
for (ai=1; ai<argc; ++ai) { arglen += strlen(argv[ai]) + 1; }
char *buf = new char[arglen]; *buf = 0;
int GlobalMasterTcl::Tcl_atomid(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 4) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *segid = argv[1];
+ const char *segid = argv[1];
int resid;
if (Tcl_GetInt(interp,argv[2],&resid) != TCL_OK) {
return TCL_ERROR;
}
- char *aname = argv[3];
+ const char *aname = argv[3];
Molecule *mol = (Molecule *)clientData;
int atomid = mol->get_atom_from_name(segid,resid,aname);
int GlobalMasterTcl::Tcl_addatom(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
DebugM(2,"Tcl_addatom called\n");
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
int GlobalMasterTcl::Tcl_addgroup(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
DebugM(2,"Tcl_addgroup called\n");
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
group_list.resize(gcount);
/* get the list of atoms that go in the group */
- int listc, i; char **listv;
+ int listc, i; const char **listv;
if (Tcl_SplitList(interp,argv[1],&listc,&listv) != TCL_OK) {
return TCL_ERROR;
}
/* this function is useless - it reconfigures whenever you add atoms! */
int GlobalMasterTcl::Tcl_reconfig(ClientData clientData,
- Tcl_Interp *interp, int argc, char **) {
+ Tcl_Interp *interp, int argc, const char **) {
DebugM(2,"Tcl_reconfig called\n");
if (argc != 1) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
}
int GlobalMasterTcl::Tcl_clearconfig(ClientData clientData,
- Tcl_Interp *interp, int argc, char **) {
+ Tcl_Interp *interp, int argc, const char **) {
DebugM(2,"Tcl_reconfig called\n");
if (argc != 1) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
}
int GlobalMasterTcl::Tcl_getstep(ClientData clientData,
- Tcl_Interp *interp, int argc, char **) {
+ Tcl_Interp *interp, int argc, const char **) {
DebugM(2,"Tcl_reconfig called\n");
if (argc != 1) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
int GlobalMasterTcl::Tcl_addenergy(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[])
+ Tcl_Interp *interp, int argc, const char *argv[])
{
double energy;
#define COMPUTETCL_H
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
void initialize();
#ifdef NAMD_TCL
Tcl_Interp *interp;
- static int Tcl_print(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_atomid(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_getstep(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_addatom(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_addgroup(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_reconfig(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_clearconfig(ClientData, Tcl_Interp *, int, char **);
+ static int Tcl_print(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_atomid(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_getstep(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_addatom(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_addgroup(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_reconfig(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_clearconfig(ClientData, Tcl_Interp *, int, const char **);
static int Tcl_loadcoords(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_loadmasses(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_loadforces(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_disabletotalforces(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_loadtotalforces(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
static int Tcl_addforce(ClientData, Tcl_Interp *, int, Tcl_Obj * const []);
- static int Tcl_addenergy(ClientData, Tcl_Interp *, int, char **);
+ static int Tcl_addenergy(ClientData, Tcl_Interp *, int, const char **);
#endif
};
#ifdef NAMD_TCL
int Measure::wrapCommand(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
/*
double (wraped *)(Vector*, Molecule*, Parameters*);
return TCL_OK;
}
-static int Tcl_centerOfNumber(ClientData, Tcl_Interp *interp, int argc, char *argv[]) {
+static int Tcl_centerOfNumber(ClientData, Tcl_Interp *interp, int argc, const char *argv[]) {
Node *node = Node::Object();
Molecule *molecule = node->molecule;
return TCL_OK;
}
-static int Tcl_centerOfMass(ClientData, Tcl_Interp *interp, int argc, char *argv[]) {
+static int Tcl_centerOfMass(ClientData, Tcl_Interp *interp, int argc, const char *argv[]) {
Node *node = Node::Object();
Molecule *molecule = node->molecule;
return TCL_OK;
}
-static int Tcl_radiusOfGyration(ClientData, Tcl_Interp *interp, int argc, char *argv[]) {
+static int Tcl_radiusOfGyration(ClientData, Tcl_Interp *interp, int argc, const char *argv[]) {
Node *node = Node::Object();
Molecule *molecule = node->molecule;
#define MEASURE_H
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
class Measure {
static void createCommands(Tcl_Interp *);
static void deleteCommands(Tcl_Interp *);
private:
- static int wrapCommand(ClientData, Tcl_Interp*, int, char**);
+ static int wrapCommand(ClientData, Tcl_Interp*, int, const char**);
};
#endif
DebugM(4, "reloadGridforceGrid(const char*) finished\n" << endi);
}
-void Node::updateGridScale(char* key, Vector scale) {
+void Node::updateGridScale(const char* key, Vector scale) {
DebugM(4, "updateGridScale(char*, Vector) called on node " << CkMyPe() << "\n" << endi);
int gridnum;
void reloadGridforceGrid(const char *key);
void reloadGridforceGrid(int gridnum);
- void updateGridScale(char* key, Vector scale);
+ void updateGridScale(const char* key, Vector scale);
void updateGridScale(int gridnum, float sx, float sy, float sz);
void reloadStructure(const char *, const char *);
#include "strlib.h" // For strcasecmp and strncasecmp
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
}
};
+class ConstPointer {
+ public:
+
+ const void *data;
+
+ ConstPointer() { }
+ ConstPointer(const void *_data): data(_data) { }
+
+ void pup(PUP::er &p) {
+ pup_bytes(&p,&data,sizeof(data));
+ }
+};
+
#endif
#include "qd.h"
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
#include "TclCommands.h"
}
}
-int ScriptTcl::Tcl_python(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_python(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
if ( argc < 2 ) {
Tcl_SetResult(interp,"args: script",TCL_VOLATILE);
return TCL_ERROR;
#else // NAMD_PYTHON
-int ScriptTcl::Tcl_python(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_python(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
Tcl_SetResult(interp,"python not enabled",TCL_VOLATILE);
return TCL_ERROR;
}
#endif // NAMD_PYTHON
int ScriptTcl::Tcl_startup(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
}
int ScriptTcl::Tcl_exit(ClientData clientData,
- Tcl_Interp *, int argc, char *argv[]) {
+ Tcl_Interp *, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
if ( CmiNumPartitions() > 1 ) {
if ( ! script->initWasCalled ) CkPrintf("TCL: Running startup before exit due to replicas.\n");
}
int ScriptTcl::Tcl_abort(ClientData,
- Tcl_Interp *, int argc, char *argv[]) {
+ Tcl_Interp *, int argc, const char *argv[]) {
Tcl_DString msg;
Tcl_DStringInit(&msg);
Tcl_DStringAppend(&msg,"TCL:",-1);
return TCL_OK;
}
-int ScriptTcl::Tcl_numPes(ClientData, Tcl_Interp *interp, int argc, char **) {
+int ScriptTcl::Tcl_numPes(ClientData, Tcl_Interp *interp, int argc, const char **) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_numNodes(ClientData, Tcl_Interp *interp, int argc, char **) {
+int ScriptTcl::Tcl_numNodes(ClientData, Tcl_Interp *interp, int argc, const char **) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_numPhysicalNodes(ClientData, Tcl_Interp *interp, int argc, char **) {
+int ScriptTcl::Tcl_numPhysicalNodes(ClientData, Tcl_Interp *interp, int argc, const char **) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_numReplicas(ClientData, Tcl_Interp *interp, int argc, char **) {
+int ScriptTcl::Tcl_numReplicas(ClientData, Tcl_Interp *interp, int argc, const char **) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_myReplica(ClientData, Tcl_Interp *interp, int argc, char **) {
+int ScriptTcl::Tcl_myReplica(ClientData, Tcl_Interp *interp, int argc, const char **) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
} \
} while ( 0 )
-int ScriptTcl::Tcl_replicaEval(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaEval(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
if ( argc != 3 ) {
Tcl_SetResult(interp,"args: dest script",TCL_VOLATILE);
return TCL_ERROR;
#endif
}
-int ScriptTcl::Tcl_replicaYield(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaYield(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
if ( argc > 2 ) {
Tcl_SetResult(interp,"args: ?seconds?",TCL_VOLATILE);
return TCL_ERROR;
}
-int ScriptTcl::Tcl_replicaSendrecv(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaSendrecv(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
if ( argc < 3 || argc > 4 ) {
Tcl_SetResult(interp,"args: data dest ?source?",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_replicaSend(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaSend(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
if ( argc != 3 ) {
Tcl_SetResult(interp,"args: data dest",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_replicaRecv(ClientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaRecv(ClientData, Tcl_Interp *interp, int argc, const char **argv) {
if (argc != 2 ) {
Tcl_SetResult(interp,"args: source",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_replicaBarrier(ClientData, Tcl_Interp *interp, int argc, char **) {
+int ScriptTcl::Tcl_replicaBarrier(ClientData, Tcl_Interp *interp, int argc, const char **) {
if ( argc > 1 ) {
Tcl_SetResult(interp,"no arguments needed",TCL_VOLATILE);
return TCL_ERROR;
return TCL_OK;
}
-int ScriptTcl::Tcl_replicaAtomSendrecv(ClientData clientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaAtomSendrecv(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if ( ! Node::Object()->simParameters->replicaUniformPatchGrids ) {
return TCL_OK;
}
-int ScriptTcl::Tcl_replicaAtomSend(ClientData clientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaAtomSend(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if ( ! Node::Object()->simParameters->replicaUniformPatchGrids ) {
return TCL_OK;
}
-int ScriptTcl::Tcl_replicaAtomRecv(ClientData clientData, Tcl_Interp *interp, int argc, char **argv) {
+int ScriptTcl::Tcl_replicaAtomRecv(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if ( ! Node::Object()->simParameters->replicaUniformPatchGrids ) {
int ScriptTcl::Tcl_stdout(ClientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2) {
Tcl_SetResult(interp, "wrong # args", TCL_VOLATILE);
return TCL_ERROR;
}
- char *filename= argv[1];
+ const char *filename= argv[1];
CkPrintf("TCL: redirecting stdout to file %s\n", filename);
if ( ! freopen(filename, "a", stdout) ) {
}
int ScriptTcl::Tcl_print(ClientData,
- Tcl_Interp *, int argc, char *argv[]) {
+ Tcl_Interp *, int argc, const char *argv[]) {
Tcl_DString msg;
Tcl_DStringInit(&msg);
for ( int i = 1; i < argc; ++i ) {
}
int ScriptTcl::Tcl_config(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
// Needs to handle the following cases as passed in by Tcl:
// name data #comment
int arglen = 1; int ai;
for (ai=1; ai<argc; ++ai) { arglen += strlen(argv[ai]) + 1; }
char *data = new char[arglen]; *data = 0;
+ char *name = new char[arglen]; *name = 0;
// find the end of the name
- char *name, *s;
- name = argv[1];
- for ( s = name; *s && *s != '='; ++s );
+ const char *s = argv[1];
+ char *sn = name;
+ for ( ; *s && *s != '='; *(sn++) = *(s++) );
+ *sn = 0;
// eliminate any comment
for (ai=2; ai<argc; ++ai) { if (argv[ai][0] == '#') argc = ai; }
// concatenate all the data items
ai = 2;
- if ( *s ) { *s = 0; ++s; strcat(data,s); } // name=data or name=
+ if ( *s ) { ++s; strcat(data,s); } // name=data or name=
else if ( ai < argc && argv[ai][0] == '=' ) { // name =data or name =
strcat(data,argv[ai]+1);
++ai;
if ( ! *name ) {
delete [] data;
+ delete [] name;
Tcl_SetResult(interp,"error parsing config file",TCL_VOLATILE);
return TCL_ERROR;
}
if ( *data ) {
script->config->add_element( name, strlen(name), data, strlen(data) );
delete [] data;
+ delete [] name;
return TCL_OK;
}
delete [] data;
+ delete [] name;
StringList *strlist = script->config->find(name);
if ( ! strlist ) {
}
int ScriptTcl::Tcl_isset_config(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *param = argv[1];
+ const char *param = argv[1];
ScriptTcl *script = (ScriptTcl *)clientData;
StringList *strlist = script->config->find(param);
Tcl_SetResult(interp, (char*)(strlist ? "1" : "0"), TCL_VOLATILE);
}
int ScriptTcl::Tcl_istrue_config(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *param = argv[1];
+ const char *param = argv[1];
ScriptTcl *script = (ScriptTcl *)clientData;
StringList *strlist = script->config->find(param);
if ( ! strlist ) {
}
int ScriptTcl::Tcl_istrue_param(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *param = argv[1];
+ const char *param = argv[1];
SimParameters *simParams = Node::Object()->simParameters;
int val = simParams->istrueinparseopts(param);
if ( val == -1 ) {
}
int ScriptTcl::Tcl_isset_param(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *param = argv[1];
+ const char *param = argv[1];
SimParameters *simParams = Node::Object()->simParameters;
int val = simParams->issetinparseopts(param);
if ( val < 0 ) {
}
int ScriptTcl::Tcl_param(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
if (argc != 2 && argc != 3 && argc != 5) {
Tcl_SetResult(interp,"wrong # args for NAMD config parameter",TCL_VOLATILE);
return TCL_ERROR;
}
- char *param = argv[1];
+ const char *param = argv[1];
if ( strlen(param) + 1 > MAX_SCRIPT_PARAM_SIZE ) {
Tcl_SetResult(interp,"parameter name too long for NAMD config parameter",TCL_VOLATILE);
return TCL_ERROR;
}
int ScriptTcl::Tcl_reinitvels(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *temp = argv[1];
+ const char *temp = argv[1];
script->setParameter("initialTemp",temp);
}
int ScriptTcl::Tcl_rescalevels(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char *factor = argv[1];
+ const char *factor = argv[1];
script->setParameter("scriptArg1",factor);
}
int ScriptTcl::Tcl_run(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc < 2) {
}
int ScriptTcl::Tcl_minimize(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
// move all atoms by a given vector
int ScriptTcl::Tcl_moveallby(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
Tcl_SetResult(interp, "wrong # args", TCL_VOLATILE);
return TCL_ERROR;
}
- char **fstring;
+ const char **fstring;
int fnum;
double x, y, z;
if (Tcl_SplitList(interp, argv[1], &fnum, &fstring) != TCL_OK)
}
int ScriptTcl::Tcl_move(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 4) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
return TCL_ERROR;
}
- char **fstring; int fnum; int atomid; int moveto; double x, y, z;
+ const char **fstring; int fnum; int atomid; int moveto; double x, y, z;
if (Tcl_GetInt(interp,argv[1],&atomid) != TCL_OK) return TCL_ERROR;
if (argv[2][0]=='t' && argv[2][1]=='o' && argv[2][2]==0) moveto = 1;
else if (argv[2][0]=='b' && argv[2][1]=='y' && argv[2][2]==0) moveto = 0;
}
int ScriptTcl::Tcl_output(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc < 2) {
}
int ScriptTcl::Tcl_measure(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
// cv bias tempBias delete
int ScriptTcl::Tcl_colvarbias(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc < 4 || argc % 2) {
// Please use the "cv colvar" interface instead
int ScriptTcl::Tcl_colvarvalue(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
}
int ScriptTcl::Tcl_colvarfreq(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
}
int ScriptTcl::Tcl_checkpoint(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 1) {
}
int ScriptTcl::Tcl_revert(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 1) {
}
int ScriptTcl::Tcl_checkpointReplica(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc < 2 || argc > 3) {
}
int ScriptTcl::Tcl_replicaDcdFile(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
#ifdef MEM_OPT_VERSION
Tcl_SetResult(interp,"replicaDcdFile not supported in memory-optimized builds",TCL_VOLATILE);
return TCL_ERROR;
}
int ScriptTcl::Tcl_callback(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
if (argc != 2) {
Tcl_SetResult(interp,"wrong # args",TCL_VOLATILE);
extern void read_binary_coors(char *fname, PDB *pdbobj);
int ScriptTcl::Tcl_reinitatoms(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc > 2) {
}
int ScriptTcl::Tcl_coorfile(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc == 4 && !strcmp(argv[1], "open")) {
}
int ScriptTcl::Tcl_dumpbench(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
}
int ScriptTcl::Tcl_reloadCharges(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
if (argc != 2) {
// BEGIN gf
int ScriptTcl::Tcl_reloadGridforceGrid(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
- char *key = NULL;
+ const char *key = NULL;
if (argc == 1) {
// nothing ... key is NULL, then Node::reloadGridforceGrid uses the
// default key, which is used internally when the gridforce*
}
int ScriptTcl::Tcl_updateGridScale(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
Vector scale(1.0f,1.0f,1.0f);
- char *key = NULL;
+ const char *key = NULL;
if (argc == 4) {
// nothing ... key is NULL, then Node::updateGridScale uses the
// default key, which is used internally when the gridforce*
// END gf
int ScriptTcl::Tcl_reloadStructure(ClientData clientData,
- Tcl_Interp *interp, int argc, char *argv[]) {
+ Tcl_Interp *interp, int argc, const char *argv[]) {
ScriptTcl *script = (ScriptTcl *)clientData;
script->initcheck();
#include "Broadcasts.h"
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#endif
friend class GlobalMasterTcl;
friend class colvarproxy_namd;
Tcl_Interp *interp;
- static int Tcl_python(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_startup(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_exit(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_abort(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_numPes(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_numNodes(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_numPhysicalNodes(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_numReplicas(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_myReplica(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaEval(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaYield(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaSendrecv(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaSend(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaRecv(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaBarrier(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaAtomSendrecv(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaAtomSend(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaAtomRecv(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_stdout(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_print(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_config(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_isset_config(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_istrue_config(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_param(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_isset_param(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_istrue_param(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_reinitvels(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_rescalevels(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_run(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_minimize(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_move(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_moveallby(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_output(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_measure(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_colvarbias(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_colvarvalue(ClientData, Tcl_Interp *, int, char **);
+ static int Tcl_python(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_startup(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_exit(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_abort(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_numPes(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_numNodes(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_numPhysicalNodes(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_numReplicas(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_myReplica(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaEval(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaYield(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaSendrecv(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaSend(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaRecv(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaBarrier(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaAtomSendrecv(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaAtomSend(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaAtomRecv(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_stdout(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_print(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_config(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_isset_config(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_istrue_config(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_param(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_isset_param(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_istrue_param(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_reinitvels(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_rescalevels(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_run(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_minimize(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_move(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_moveallby(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_output(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_measure(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_colvarbias(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_colvarvalue(ClientData, Tcl_Interp *, int, const char **);
static int Tcl_colvars(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
- static int Tcl_colvarfreq(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_checkpoint(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_revert(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_checkpointReplica(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_replicaDcdFile(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_callback(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_reinitatoms(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_coorfile(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_dumpbench(ClientData, Tcl_Interp *, int, char **);
+ static int Tcl_colvarfreq(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_checkpoint(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_revert(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_checkpointReplica(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_replicaDcdFile(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_callback(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_reinitatoms(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_coorfile(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_dumpbench(ClientData, Tcl_Interp *, int, const char **);
static int Tcl_consForceConfig(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
- static int Tcl_reloadCharges(ClientData, Tcl_Interp *, int, char **);
- static int Tcl_reloadGridforceGrid(ClientData, Tcl_Interp *, int, char **); // BEGIN, END gf
- static int Tcl_updateGridScale(ClientData, Tcl_Interp *, int, char **); // BEGIN, END gf
- static int Tcl_reloadStructure(ClientData, Tcl_Interp *, int, char **);
+ static int Tcl_reloadCharges(ClientData, Tcl_Interp *, int, const char **);
+ static int Tcl_reloadGridforceGrid(ClientData, Tcl_Interp *, int, const char **); // BEGIN, END gf
+ static int Tcl_updateGridScale(ClientData, Tcl_Interp *, int, const char **); // BEGIN, END gf
+ static int Tcl_reloadStructure(ClientData, Tcl_Interp *, int, const char **);
char *callbackname;
void doCallback(const char *labels, const char *data);
int doCallback() { return ! ! callbackname; }
- char *measure_command;
+ const char *measure_command;
int measure_result;
#endif
};
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
#include "Matrix4.C"
#ifdef NAMD_TCL
-#define USE_COMPAT_CONST
#include <tcl.h>
int tcl_vector_math_init(Tcl_Interp *);