source: ThirdParty/mpqc_open/src/lib/util/psi3/libpsio/tocclean.cc@ 866dec

AutomationFragmentation_failures Candidate_v1.6.1 ChemicalSpaceEvaluator Enhanced_StructuralOptimization_continued Exclude_Hydrogens_annealWithBondGraph ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_contraction-expansion Gui_displays_atomic_force_velocity PythonUI_with_named_parameters StoppableMakroAction TremoloParser_IncreasedPrecision
Last change on this file since 866dec was 860145, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit '0b990dfaa8c6007a996d030163a25f7f5fc8a7e7' as 'ThirdParty/mpqc_open'

  • Property mode set to 100644
File size: 1.1 KB
Line 
1/*!
2 \file tocclean.c
3 \ingroup (PSIO)
4*/
5
6#include <string.h>
7#include <stdlib.h>
8#include <util/psi3/libpsio/psio.h>
9
10namespace psi3 {
11namespace libpsio {
12
13/*!
14** PSIO_TOCCLEAN(): Delete all TOC entries after the given key.
15** If a blank key is given, the entire TOC will be wiped.
16**
17** \ingroup (PSIO)
18*/
19
20int psio_tocclean(unsigned int unit, char *key)
21{
22 psio_tocentry *this_entry, *last_entry, *prev_entry;
23
24 /* Check the key length first */
25 if((strlen(key)+1) > PSIO_KEYLEN) psio_error(unit,PSIO_ERROR_KEYLEN);
26
27 this_entry = psio_tocscan(unit, key);
28 if(this_entry == NULL) {
29 if(!strcmp(key,"")) this_entry = psio_unit[unit].toc;
30 else {
31 fprintf(stderr, "PSIO_ERROR: Can't find TOC Entry %s\n", key);
32 psio_error(unit,PSIO_ERROR_NOTOCENT);
33 }
34 }
35 else this_entry = this_entry->next;
36
37 /* Get the end of the TOC and work backwards */
38 last_entry = psio_toclast(unit);
39
40 while((last_entry != this_entry) && (last_entry != NULL)) {
41 /* Now free all the remaining members */
42 prev_entry = last_entry->last;
43 free(last_entry);
44 last_entry = prev_entry;
45 }
46 return(0);
47}
48
49}
50}
Note: See TracBrowser for help on using the repository browser.