61 #if !defined(VINLINE_MGPARM) 70 VASSERT( thee != VNULL);
103 for(i=0;i<3;i++) thee->
totForce[i] = 0.0;
117 for (i=0; i<3; i++) thee->
grid[i] = source->
grid[i];
168 if ((*thee) != VNULL) {
170 Vmem_free(VNULL, 1,
sizeof(
APOLparm), (
void **)thee);
186 Vnm_print(2,
"APOLparm_check: not filled!\n");
190 Vnm_print(2,
"APOLparm_check: grid not set!\n");
194 Vnm_print(2,
"APOLparm_check: molid not set!\n");
198 Vnm_print(2,
"APOLparm_check: bconc not set!\n");
202 Vnm_print(2,
"APOLparm_check: sdens not set!\n");
206 Vnm_print(2,
"APOLparm_check: dpos not set!\n");
210 Vnm_print(2,
"APOLparm_check: press not set!\n");
214 Vnm_print(2,
"APOLparm_check: srfm not set!\n");
218 Vnm_print(2,
"APOLparm_check: srad not set!\n");
222 Vnm_print(2,
"APOLparm_check: swin not set!\n");
226 Vnm_print(2,
"APOLparm_check: temp not set!\n");
230 Vnm_print(2,
"APOLparm_check: gamma not set!\n");
237 VPRIVATE Vrc_Codes APOLparm_parseGRID(
APOLparm *thee, Vio *sock) {
239 char tok[VMAX_BUFSIZE];
242 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
243 if (sscanf(tok,
"%lf", &tf) == 0) {
244 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing GRID \ 247 }
else thee->
grid[0] = tf;
248 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
249 if (sscanf(tok,
"%lf", &tf) == 0) {
250 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing GRID \ 253 }
else thee->
grid[1] = tf;
254 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
255 if (sscanf(tok,
"%lf", &tf) == 0) {
256 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing GRID \ 259 }
else thee->
grid[2] = tf;
264 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
268 VPRIVATE Vrc_Codes APOLparm_parseMOL(
APOLparm *thee, Vio *sock) {
270 char tok[VMAX_BUFSIZE];
272 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
273 if (sscanf(tok,
"%d", &ti) == 0) {
274 Vnm_print(2,
"NOsh: Read non-int (%s) while parsing MOL \ 283 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
287 VPRIVATE Vrc_Codes APOLparm_parseSRFM(
APOLparm *thee, Vio *sock) {
288 char tok[VMAX_BUFSIZE];
290 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
297 Vnm_print(2,
"parseAPOL: Unrecongnized keyword (%s) when parsing srfm!\n", tok);
298 Vnm_print(2,
"parseAPOL: Accepted values for srfm = sacc\n");
305 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
309 VPRIVATE Vrc_Codes APOLparm_parseSRAD(
APOLparm *thee, Vio *sock) {
310 char tok[VMAX_BUFSIZE];
313 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
314 if (sscanf(tok,
"%lf", &tf) == 0) {
315 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing SRAD \ 324 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
328 VPRIVATE Vrc_Codes APOLparm_parseSWIN(
APOLparm *thee, Vio *sock) {
329 char tok[VMAX_BUFSIZE];
332 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
333 if (sscanf(tok,
"%lf", &tf) == 0) {
334 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing SWIN \ 343 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
347 VPRIVATE Vrc_Codes APOLparm_parseTEMP(
APOLparm *thee, Vio *sock) {
348 char tok[VMAX_BUFSIZE];
351 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
352 if (sscanf(tok,
"%lf", &tf) == 0) {
353 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing TEMP \ 362 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
366 VPRIVATE Vrc_Codes APOLparm_parseGAMMA(
APOLparm *thee, Vio *sock) {
367 char tok[VMAX_BUFSIZE];
370 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
371 if (sscanf(tok,
"%lf", &tf) == 0) {
372 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing GAMMA \ 381 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
385 VPRIVATE Vrc_Codes APOLparm_parseCALCENERGY(
APOLparm *thee, Vio *sock) {
386 char tok[VMAX_BUFSIZE];
389 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
391 if (sscanf(tok,
"%d", &ti) == 1) {
395 Vnm_print(2,
"parseAPOL: Warning -- parsed deprecated \"calcenergy \ 396 %d\" statement.\n", ti);
397 Vnm_print(2,
"parseAPOL: Please use \"calcenergy ");
403 Vnm_print(2,
"total");
406 Vnm_print(2,
"comps");
409 Vnm_print(2,
"UNKNOWN");
412 Vnm_print(2,
"\" instead.\n");
427 Vnm_print(2,
"NOsh: Unrecognized parameter (%s) while parsing \ 428 calcenergy!\n", tok);
434 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
438 VPRIVATE Vrc_Codes APOLparm_parseCALCFORCE(
APOLparm *thee, Vio *sock) {
439 char tok[VMAX_BUFSIZE];
442 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
444 if (sscanf(tok,
"%d", &ti) == 1) {
448 Vnm_print(2,
"parseAPOL: Warning -- parsed deprecated \"calcforce \ 449 %d\" statement.\n", ti);
450 Vnm_print(2,
"parseAPOL: Please use \"calcforce ");
456 Vnm_print(2,
"total");
459 Vnm_print(2,
"comps");
462 Vnm_print(2,
"UNKNOWN");
465 Vnm_print(2,
"\" instead.\n");
480 Vnm_print(2,
"NOsh: Unrecognized parameter (%s) while parsing \ 487 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
491 VPRIVATE Vrc_Codes APOLparm_parseBCONC(
APOLparm *thee, Vio *sock) {
492 char tok[VMAX_BUFSIZE];
495 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
496 if (sscanf(tok,
"%lf", &tf) == 0) {
497 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing BCONC \ 506 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
510 VPRIVATE Vrc_Codes APOLparm_parseSDENS(
APOLparm *thee, Vio *sock) {
511 char tok[VMAX_BUFSIZE];
514 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
515 if (sscanf(tok,
"%lf", &tf) == 0) {
516 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing SDENS \ 525 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
529 VPRIVATE Vrc_Codes APOLparm_parseDPOS(
APOLparm *thee, Vio *sock) {
530 char tok[VMAX_BUFSIZE];
533 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
534 if (sscanf(tok,
"%lf", &tf) == 0) {
535 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing SDENS \ 542 if(thee->
dpos < 0.001){
543 Vnm_print(1,
"\nWARNING WARNING WARNING WARNING WARNING\n");
544 Vnm_print(1,
"NOsh: dpos is set to a very small value.\n");
545 Vnm_print(1,
"NOsh: If you are not using a PQR file, you can \ 546 safely ignore this message.\n");
547 Vnm_print(1,
"NOsh: Otherwise please choose a value greater than \ 548 or equal to 0.001.\n\n");
554 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
558 VPRIVATE Vrc_Codes APOLparm_parsePRESS(
APOLparm *thee, Vio *sock) {
559 char tok[VMAX_BUFSIZE];
562 VJMPERR1(Vio_scanf(sock,
"%s", tok) == 1);
563 if (sscanf(tok,
"%lf", &tf) == 0) {
564 Vnm_print(2,
"NOsh: Read non-float (%s) while parsing PRESS \ 573 Vnm_print(2,
"parseAPOL: ran out of tokens!\n");
581 Vnm_print(2,
"parseAPOL: got NULL thee!\n");
586 Vnm_print(2,
"parseAPOL: got NULL socket!\n");
591 return APOLparm_parseMOL(thee, sock);
593 return APOLparm_parseGRID(thee, sock);
595 Vnm_print(2,
"APOLparm_parseToken: The DIME and GLEN keywords for APOLAR have been replaced with GRID.\n");
596 Vnm_print(2,
"APOLparm_parseToken: Please see the APBS User Guide for more information.\n");
599 Vnm_print(2,
"APOLparm_parseToken: The DIME and GLEN keywords for APOLAR have been replaced with GRID.\n");
600 Vnm_print(2,
"APOLparm_parseToken: Please see the APBS User Guide for more information.\n");
603 return APOLparm_parseBCONC(thee, sock);
605 return APOLparm_parseSDENS(thee, sock);
607 return APOLparm_parseDPOS(thee, sock);
609 return APOLparm_parseSRFM(thee, sock);
611 return APOLparm_parseSRAD(thee, sock);
613 return APOLparm_parseSWIN(thee, sock);
615 return APOLparm_parseTEMP(thee, sock);
617 return APOLparm_parseGAMMA(thee, sock);
619 return APOLparm_parsePRESS(thee, sock);
621 return APOLparm_parseCALCENERGY(thee, sock);
623 return APOLparm_parseCALCFORCE(thee, sock);
VPUBLIC Vrc_Codes APOLparm_parseToken(APOLparm *thee, char tok[VMAX_BUFSIZE], Vio *sock)
Parse an MG keyword from an input file.
enum eAPOLparm_calcForce APOLparm_calcForce
Define eAPOLparm_calcForce enumeration as APOLparm_calcForce.
APOLparm_calcForce calcforce
VPUBLIC Vrc_Codes APOLparm_check(APOLparm *thee)
Consistency check for parameter values stored in object.
VPUBLIC void APOLparm_dtor2(APOLparm *thee)
FORTRAN stub for object destructor.
APOLparm_calcEnergy calcenergy
#define VEMBED(rctag)
Allows embedding of RCS ID tags in object files.
VPUBLIC int Vstring_strcasecmp(const char *s1, const char *s2)
Case-insensitive string comparison (BSD standard)
VPUBLIC void APOLparm_copy(APOLparm *thee, APOLparm *source)
Copy target object into thee.
VPUBLIC Vrc_Codes APOLparm_ctor2(APOLparm *thee)
FORTRAN stub to construct APOLparm.
VPUBLIC APOLparm * APOLparm_ctor()
Construct APOLparm.
enum eAPOLparm_calcEnergy APOLparm_calcEnergy
Define eAPOLparm_calcEnergy enumeration as APOLparm_calcEnergy.
VPUBLIC void APOLparm_dtor(APOLparm **thee)
Object destructor.
Parameter structure for APOL-specific variables from input files.