APBS  1.5
apolparm.c
Go to the documentation of this file.
1 
57 #include "apolparm.h"
58 
59 VEMBED(rcsid="$Id$")
60 
61 #if !defined(VINLINE_MGPARM)
62 
63 #endif /* if !defined(VINLINE_MGPARM) */
64 
65 VPUBLIC APOLparm* APOLparm_ctor() {
66 
67  /* Set up the structure */
68  APOLparm *thee = VNULL;
69  thee = (APOLparm*)Vmem_malloc(VNULL, 1, sizeof(APOLparm));
70  VASSERT( thee != VNULL);
71  VASSERT( APOLparm_ctor2(thee) == VRC_SUCCESS );
72 
73  return thee;
74 }
75 
76 VPUBLIC Vrc_Codes APOLparm_ctor2(APOLparm *thee) {
77 
78  int i;
79 
80  if (thee == VNULL) return VRC_FAILURE;
81 
82  thee->parsed = 0;
83 
84  thee->setgrid = 0;
85  thee->setmolid = 0;
86  thee->setbconc = 0;
87  thee->setsdens = 0;
88  thee->setdpos = 0;
89  thee->setpress = 0;
90  thee->setsrfm = 0;
91  thee->setsrad = 0;
92  thee->setswin = 0;
93 
94  thee->settemp = 0;
95  thee->setgamma = 0;
96 
97  thee->setwat = 0;
98 
99  thee->sav = 0.0;
100  thee->sasa = 0.0;
101  thee->wcaEnergy = 0.0;
102 
103  for(i=0;i<3;i++) thee->totForce[i] = 0.0;
104 
105  return VRC_SUCCESS;
106 }
107 
108 VPUBLIC void APOLparm_copy(
109  APOLparm *thee,
110  APOLparm *source
111  ) {
112 
113  int i;
114 
115  thee->parsed = source->parsed;
116 
117  for (i=0; i<3; i++) thee->grid[i] = source->grid[i];
118  thee->setgrid = source->setgrid;
119 
120  thee->molid = source->molid;
121  thee->setmolid = source->setmolid;
122 
123  thee->bconc = source->bconc ;
124  thee->setbconc= source->setbconc ;
125 
126  thee->sdens = source->sdens ;
127  thee->setsdens= source->setsdens ;
128 
129  thee->dpos = source->dpos ;
130  thee->setdpos= source->setdpos ;
131 
132  thee->press = source->press ;
133  thee->setpress = source->setpress ;
134 
135  thee->srfm = source->srfm ;
136  thee->setsrfm = source->setsrfm ;
137 
138  thee->srad = source->srad ;
139  thee->setsrad = source->setsrad ;
140 
141  thee->swin = source->swin ;
142  thee->setswin = source->setswin ;
143 
144  thee->temp = source->temp ;
145  thee->settemp = source->settemp ;
146 
147  thee->gamma = source->gamma ;
148  thee->setgamma = source->setgamma ;
149 
150  thee->calcenergy = source->calcenergy ;
151  thee->setcalcenergy = source->setcalcenergy ;
152 
153  thee->calcforce = source->calcforce ;
154  thee->setcalcforce = source->setcalcforce ;
155 
156  thee->setwat = source->setwat ;
157 
158  thee->sav = source->sav;
159  thee->sasa = source->sasa;
160  thee->wcaEnergy = source->wcaEnergy;
161 
162  for(i=0;i<3;i++) thee->totForce[i] = source->totForce[i];
163 
164  return;
165 }
166 
167 VPUBLIC void APOLparm_dtor(APOLparm **thee) {
168  if ((*thee) != VNULL) {
169  APOLparm_dtor2(*thee);
170  Vmem_free(VNULL, 1, sizeof(APOLparm), (void **)thee);
171  (*thee) = VNULL;
172  }
173 
174  return;
175 }
176 
177 VPUBLIC void APOLparm_dtor2(APOLparm *thee) { ; }
178 
179 VPUBLIC Vrc_Codes APOLparm_check(APOLparm *thee) {
180 
181 
182  Vrc_Codes rc;
183  rc = VRC_SUCCESS;
184 
185  if (!thee->parsed) {
186  Vnm_print(2, "APOLparm_check: not filled!\n");
187  return VRC_FAILURE;
188  }
189  if (!thee->setgrid) {
190  Vnm_print(2, "APOLparm_check: grid not set!\n");
191  rc = VRC_FAILURE;
192  }
193  if (!thee->setmolid) {
194  Vnm_print(2, "APOLparm_check: molid not set!\n");
195  rc = VRC_FAILURE;
196  }
197  if (!thee->setbconc) {
198  Vnm_print(2, "APOLparm_check: bconc not set!\n");
199  rc = VRC_FAILURE;
200  }
201  if (!thee->setsdens) {
202  Vnm_print(2, "APOLparm_check: sdens not set!\n");
203  rc = VRC_FAILURE;
204  }
205  if (!thee->setdpos) {
206  Vnm_print(2, "APOLparm_check: dpos not set!\n");
207  rc = VRC_FAILURE;
208  }
209  if (!thee->setpress) {
210  Vnm_print(2, "APOLparm_check: press not set!\n");
211  rc = VRC_FAILURE;
212  }
213  if (!thee->setsrfm) {
214  Vnm_print(2, "APOLparm_check: srfm not set!\n");
215  rc = VRC_FAILURE;
216  }
217  if (!thee->setsrad) {
218  Vnm_print(2, "APOLparm_check: srad not set!\n");
219  rc = VRC_FAILURE;
220  }
221  if (!thee->setswin) {
222  Vnm_print(2, "APOLparm_check: swin not set!\n");
223  rc = VRC_FAILURE;
224  }
225  if (!thee->settemp) {
226  Vnm_print(2, "APOLparm_check: temp not set!\n");
227  rc = VRC_FAILURE;
228  }
229  if (!thee->setgamma) {
230  Vnm_print(2, "APOLparm_check: gamma not set!\n");
231  rc = VRC_FAILURE;
232  }
233  return rc;
234 
235 }
236 
237 VPRIVATE Vrc_Codes APOLparm_parseGRID(APOLparm *thee, Vio *sock) {
238 
239  char tok[VMAX_BUFSIZE];
240  double tf;
241 
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 \
245 keyword!\n", tok);
246  return VRC_WARNING;
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 \
251 keyword!\n", tok);
252  return VRC_WARNING;
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 \
257 keyword!\n", tok);
258  return VRC_WARNING;
259  } else thee->grid[2] = tf;
260  thee->setgrid = 1;
261  return VRC_SUCCESS;
262 
263 VERROR1:
264  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
265  return VRC_WARNING;
266 }
267 
268 VPRIVATE Vrc_Codes APOLparm_parseMOL(APOLparm *thee, Vio *sock) {
269  int ti;
270  char tok[VMAX_BUFSIZE];
271 
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 \
275 keyword!\n", tok);
276  return VRC_WARNING;
277  }
278  thee->molid = ti;
279  thee->setmolid = 1;
280  return VRC_SUCCESS;
281 
282 VERROR1:
283  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
284  return VRC_WARNING;
285 }
286 
287 VPRIVATE Vrc_Codes APOLparm_parseSRFM(APOLparm *thee, Vio *sock) {
288  char tok[VMAX_BUFSIZE];
289 
290  VJMPERR1(Vio_scanf(sock, "%s", tok) == 1);
291 
292  if (Vstring_strcasecmp(tok, "sacc") == 0) {
293  thee->srfm = VSM_MOL;
294  thee->setsrfm = 1;
295  return VRC_SUCCESS;
296  } else {
297  Vnm_print(2, "parseAPOL: Unrecongnized keyword (%s) when parsing srfm!\n", tok);
298  Vnm_print(2, "parseAPOL: Accepted values for srfm = sacc\n");
299  return VRC_WARNING;
300  }
301 
302  return VRC_FAILURE;
303 
304 VERROR1:
305  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
306  return VRC_WARNING;
307 }
308 
309 VPRIVATE Vrc_Codes APOLparm_parseSRAD(APOLparm *thee, Vio *sock) {
310  char tok[VMAX_BUFSIZE];
311  double tf;
312 
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 \
316 keyword!\n", tok);
317  return VRC_WARNING;
318  }
319  thee->srad = tf;
320  thee->setsrad = 1;
321  return VRC_SUCCESS;
322 
323 VERROR1:
324  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
325  return VRC_WARNING;
326 }
327 
328 VPRIVATE Vrc_Codes APOLparm_parseSWIN(APOLparm *thee, Vio *sock) {
329  char tok[VMAX_BUFSIZE];
330  double tf;
331 
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 \
335 keyword!\n", tok);
336  return VRC_WARNING;
337  }
338  thee->swin = tf;
339  thee->setswin = 1;
340  return VRC_SUCCESS;
341 
342 VERROR1:
343  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
344  return VRC_WARNING;
345 }
346 
347 VPRIVATE Vrc_Codes APOLparm_parseTEMP(APOLparm *thee, Vio *sock) {
348  char tok[VMAX_BUFSIZE];
349  double tf;
350 
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 \
354 keyword!\n", tok);
355  return VRC_WARNING;
356  }
357  thee->temp = tf;
358  thee->settemp = 1;
359  return VRC_SUCCESS;
360 
361 VERROR1:
362  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
363  return VRC_WARNING;
364 }
365 
366 VPRIVATE Vrc_Codes APOLparm_parseGAMMA(APOLparm *thee, Vio *sock) {
367  char tok[VMAX_BUFSIZE];
368  double tf;
369 
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 \
373 keyword!\n", tok);
374  return VRC_WARNING;
375  }
376  thee->gamma = tf;
377  thee->setgamma = 1;
378  return VRC_SUCCESS;
379 
380 VERROR1:
381  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
382  return VRC_WARNING;
383 }
384 
385 VPRIVATE Vrc_Codes APOLparm_parseCALCENERGY(APOLparm *thee, Vio *sock) {
386  char tok[VMAX_BUFSIZE];
387  int ti;
388 
389  VJMPERR1(Vio_scanf(sock, "%s", tok) == 1);
390  /* Parse number */
391  if (sscanf(tok, "%d", &ti) == 1) {
392  thee->calcenergy = (APOLparm_calcEnergy)ti;
393  thee->setcalcenergy = 1;
394 
395  Vnm_print(2, "parseAPOL: Warning -- parsed deprecated \"calcenergy \
396 %d\" statement.\n", ti);
397  Vnm_print(2, "parseAPOL: Please use \"calcenergy ");
398  switch (thee->calcenergy) {
399  case ACE_NO:
400  Vnm_print(2, "no");
401  break;
402  case ACE_TOTAL:
403  Vnm_print(2, "total");
404  break;
405  case ACE_COMPS:
406  Vnm_print(2, "comps");
407  break;
408  default:
409  Vnm_print(2, "UNKNOWN");
410  break;
411  }
412  Vnm_print(2, "\" instead.\n");
413  return VRC_SUCCESS;
414  } else if (Vstring_strcasecmp(tok, "no") == 0) {
415  thee->calcenergy = ACE_NO;
416  thee->setcalcenergy = 1;
417  return VRC_SUCCESS;
418  } else if (Vstring_strcasecmp(tok, "total") == 0) {
419  thee->calcenergy = ACE_TOTAL;
420  thee->setcalcenergy = 1;
421  return VRC_SUCCESS;
422  } else if (Vstring_strcasecmp(tok, "comps") == 0) {
423  thee->calcenergy = ACE_COMPS;
424  thee->setcalcenergy = 1;
425  return VRC_SUCCESS;
426  } else {
427  Vnm_print(2, "NOsh: Unrecognized parameter (%s) while parsing \
428 calcenergy!\n", tok);
429  return VRC_WARNING;
430  }
431  return VRC_FAILURE;
432 
433 VERROR1:
434  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
435  return VRC_WARNING;
436 }
437 
438 VPRIVATE Vrc_Codes APOLparm_parseCALCFORCE(APOLparm *thee, Vio *sock) {
439  char tok[VMAX_BUFSIZE];
440  int ti;
441 
442  VJMPERR1(Vio_scanf(sock, "%s", tok) == 1);
443  /* Parse number */
444  if (sscanf(tok, "%d", &ti) == 1) {
445  thee->calcforce = (APOLparm_calcForce)ti;
446  thee->setcalcforce = 1;
447 
448  Vnm_print(2, "parseAPOL: Warning -- parsed deprecated \"calcforce \
449 %d\" statement.\n", ti);
450  Vnm_print(2, "parseAPOL: Please use \"calcforce ");
451  switch (thee->calcenergy) {
452  case ACF_NO:
453  Vnm_print(2, "no");
454  break;
455  case ACF_TOTAL:
456  Vnm_print(2, "total");
457  break;
458  case ACF_COMPS:
459  Vnm_print(2, "comps");
460  break;
461  default:
462  Vnm_print(2, "UNKNOWN");
463  break;
464  }
465  Vnm_print(2, "\" instead.\n");
466  return VRC_SUCCESS;
467  } else if (Vstring_strcasecmp(tok, "no") == 0) {
468  thee->calcforce = ACF_NO;
469  thee->setcalcforce = 1;
470  return VRC_SUCCESS;
471  } else if (Vstring_strcasecmp(tok, "total") == 0) {
472  thee->calcforce = ACF_TOTAL;
473  thee->setcalcforce = 1;
474  return VRC_SUCCESS;
475  } else if (Vstring_strcasecmp(tok, "comps") == 0) {
476  thee->calcforce = ACF_COMPS;
477  thee->setcalcforce = 1;
478  return VRC_SUCCESS;
479  } else {
480  Vnm_print(2, "NOsh: Unrecognized parameter (%s) while parsing \
481 calcforce!\n", tok);
482  return VRC_WARNING;
483  }
484  return VRC_FAILURE;
485 
486 VERROR1:
487  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
488  return VRC_WARNING;
489 }
490 
491 VPRIVATE Vrc_Codes APOLparm_parseBCONC(APOLparm *thee, Vio *sock) {
492  char tok[VMAX_BUFSIZE];
493  double tf;
494 
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 \
498 keyword!\n", tok);
499  return VRC_WARNING;
500  }
501  thee->bconc = tf;
502  thee->setbconc = 1;
503  return VRC_SUCCESS;
504 
505 VERROR1:
506  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
507  return VRC_WARNING;
508 }
509 
510 VPRIVATE Vrc_Codes APOLparm_parseSDENS(APOLparm *thee, Vio *sock) {
511  char tok[VMAX_BUFSIZE];
512  double tf;
513 
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 \
517 keyword!\n", tok);
518  return VRC_WARNING;
519  }
520  thee->sdens = tf;
521  thee->setsdens = 1;
522  return VRC_SUCCESS;
523 
524 VERROR1:
525  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
526  return VRC_WARNING;
527 }
528 
529 VPRIVATE Vrc_Codes APOLparm_parseDPOS(APOLparm *thee, Vio *sock) {
530  char tok[VMAX_BUFSIZE];
531  double tf;
532 
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 \
536 keyword!\n", tok);
537  return VRC_WARNING;
538  }
539  thee->dpos = tf;
540  thee->setdpos = 1;
541 
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");
549  }
550 
551  return VRC_SUCCESS;
552 
553 VERROR1:
554  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
555  return VRC_WARNING;
556 }
557 
558 VPRIVATE Vrc_Codes APOLparm_parsePRESS(APOLparm *thee, Vio *sock) {
559  char tok[VMAX_BUFSIZE];
560  double tf;
561 
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 \
565 keyword!\n", tok);
566  return VRC_WARNING;
567  }
568  thee->press = tf;
569  thee->setpress = 1;
570  return VRC_SUCCESS;
571 
572 VERROR1:
573  Vnm_print(2, "parseAPOL: ran out of tokens!\n");
574  return VRC_WARNING;
575 }
576 
577 VPUBLIC Vrc_Codes APOLparm_parseToken(APOLparm *thee, char tok[VMAX_BUFSIZE],
578  Vio *sock) {
579 
580  if (thee == VNULL) {
581  Vnm_print(2, "parseAPOL: got NULL thee!\n");
582  return VRC_WARNING;
583  }
584 
585  if (sock == VNULL) {
586  Vnm_print(2, "parseAPOL: got NULL socket!\n");
587  return VRC_WARNING;
588  }
589 
590  if (Vstring_strcasecmp(tok, "mol") == 0) {
591  return APOLparm_parseMOL(thee, sock);
592  } else if (Vstring_strcasecmp(tok, "grid") == 0) {
593  return APOLparm_parseGRID(thee, sock);
594  } else if (Vstring_strcasecmp(tok, "dime") == 0) {
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");
597  return VRC_WARNING;
598  } else if (Vstring_strcasecmp(tok, "glen") == 0) {
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");
601  return VRC_WARNING;
602  } else if (Vstring_strcasecmp(tok, "bconc") == 0) {
603  return APOLparm_parseBCONC(thee, sock);
604  } else if (Vstring_strcasecmp(tok, "sdens") == 0) {
605  return APOLparm_parseSDENS(thee, sock);
606  } else if (Vstring_strcasecmp(tok, "dpos") == 0) {
607  return APOLparm_parseDPOS(thee, sock);
608  } else if (Vstring_strcasecmp(tok, "srfm") == 0) {
609  return APOLparm_parseSRFM(thee, sock);
610  } else if (Vstring_strcasecmp(tok, "srad") == 0) {
611  return APOLparm_parseSRAD(thee, sock);
612  } else if (Vstring_strcasecmp(tok, "swin") == 0) {
613  return APOLparm_parseSWIN(thee, sock);
614  } else if (Vstring_strcasecmp(tok, "temp") == 0) {
615  return APOLparm_parseTEMP(thee, sock);
616  } else if (Vstring_strcasecmp(tok, "gamma") == 0) {
617  return APOLparm_parseGAMMA(thee, sock);
618  } else if (Vstring_strcasecmp(tok, "press") == 0) {
619  return APOLparm_parsePRESS(thee, sock);
620  } else if (Vstring_strcasecmp(tok, "calcenergy") == 0) {
621  return APOLparm_parseCALCENERGY(thee, sock);
622  } else if (Vstring_strcasecmp(tok, "calcforce") == 0) {
623  return APOLparm_parseCALCFORCE(thee, sock);
624  }
625 
626  return VRC_FAILURE;
627 
628 }
double sav
Definition: apolparm.h:176
int setsrfm
Definition: apolparm.h:152
double bconc
Definition: apolparm.h:139
VPUBLIC Vrc_Codes APOLparm_parseToken(APOLparm *thee, char tok[VMAX_BUFSIZE], Vio *sock)
Parse an MG keyword from an input file.
Definition: apolparm.c:577
enum eAPOLparm_calcForce APOLparm_calcForce
Define eAPOLparm_calcForce enumeration as APOLparm_calcForce.
Definition: apolparm.h:105
double temp
Definition: apolparm.h:160
int setpress
Definition: apolparm.h:149
double sdens
Definition: apolparm.h:142
int molid
Definition: apolparm.h:136
double srad
Definition: apolparm.h:154
int setsdens
Definition: apolparm.h:143
int setcalcforce
Definition: apolparm.h:171
double totForce[3]
Definition: apolparm.h:178
APOLparm_calcForce calcforce
Definition: apolparm.h:170
int setgrid
Definition: apolparm.h:134
double press
Definition: apolparm.h:148
VPUBLIC Vrc_Codes APOLparm_check(APOLparm *thee)
Consistency check for parameter values stored in object.
Definition: apolparm.c:179
int setbconc
Definition: apolparm.h:140
int setcalcenergy
Definition: apolparm.h:168
double dpos
Definition: apolparm.h:145
VPUBLIC void APOLparm_dtor2(APOLparm *thee)
FORTRAN stub for object destructor.
Definition: apolparm.c:177
Vsurf_Meth srfm
Definition: apolparm.h:151
int setmolid
Definition: apolparm.h:137
APOLparm_calcEnergy calcenergy
Definition: apolparm.h:167
#define VEMBED(rctag)
Allows embedding of RCS ID tags in object files.
Definition: vhal.h:556
VPUBLIC int Vstring_strcasecmp(const char *s1, const char *s2)
Case-insensitive string comparison (BSD standard)
Definition: vstring.c:66
Definition: vhal.h:103
int setgamma
Definition: apolparm.h:165
VPUBLIC void APOLparm_copy(APOLparm *thee, APOLparm *source)
Copy target object into thee.
Definition: apolparm.c:108
double gamma
Definition: apolparm.h:163
int setsrad
Definition: apolparm.h:155
double grid[3]
Definition: apolparm.h:133
int setwat
Definition: apolparm.h:180
int settemp
Definition: apolparm.h:161
VPUBLIC Vrc_Codes APOLparm_ctor2(APOLparm *thee)
FORTRAN stub to construct APOLparm.
Definition: apolparm.c:76
double swin
Definition: apolparm.h:157
double sasa
Definition: apolparm.h:175
int setswin
Definition: apolparm.h:158
VPUBLIC APOLparm * APOLparm_ctor()
Construct APOLparm.
Definition: apolparm.c:65
enum eAPOLparm_calcEnergy APOLparm_calcEnergy
Define eAPOLparm_calcEnergy enumeration as APOLparm_calcEnergy.
Definition: apolparm.h:89
VPUBLIC void APOLparm_dtor(APOLparm **thee)
Object destructor.
Definition: apolparm.c:167
int setdpos
Definition: apolparm.h:146
int parsed
Definition: apolparm.h:131
double wcaEnergy
Definition: apolparm.h:177
Parameter structure for APOL-specific variables from input files.
Definition: apolparm.h:129