Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config.cpp

    r4fc93f ra67d19  
    66
    77#include <stdio.h>
     8#include <cstring>
    89
    910#include "atom.hpp"
     
    1819#include "molecule.hpp"
    1920#include "periodentafel.hpp"
     21#include "World.hpp"
    2022
    2123/******************************** Functions for class ConfigFileBuffer **********************/
     
    2729    char number1[8];
    2830    char number2[8];
    29     char *dummy1, *dummy2;
     31    const char *dummy1, *dummy2;
    3032    //Log() << Verbose(0) << s1 << "  " << s2 << endl;
    3133    dummy1 = strchr(s1, '_')+sizeof(char)*5;  // go just after "Ion_Type"
     
    7274  file= new ifstream(filename);
    7375  if (file == NULL) {
    74     eLog() << Verbose(1) << "config file " << filename << " missing!" << endl;
     76    DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl);
    7577    return;
    7678  }
     
    8385  file->clear();
    8486  file->seekg(file_position, ios::beg);
    85   Log() << Verbose(1) << NoLines-1 << " lines were recognized." << endl;
     87  DoLog(1) && (Log() << Verbose(1) << NoLines-1 << " lines were recognized." << endl);
    8688
    8789  // allocate buffer's 1st dimension
    8890  if (buffer != NULL) {
    89     eLog() << Verbose(1) << "FileBuffer->buffer is not NULL!" << endl;
     91    DoeLog(1) && (eLog()<< Verbose(1) << "FileBuffer->buffer is not NULL!" << endl);
    9092    return;
    9193  } else
     
    103105    lines++;
    104106  } while((!file->eof()) && (lines < NoLines));
    105   Log() << Verbose(1) << lines-1 << " lines were read into the buffer." << endl;
     107  DoLog(1) && (Log() << Verbose(1) << lines-1 << " lines were read into the buffer." << endl);
    106108
    107109  // close and exit
     
    140142void ConfigFileBuffer::MapIonTypesInBuffer(const int NoAtoms)
    141143{
    142   map<const char *, int, IonTypeCompare> LineList;
     144  map<const char *, int, IonTypeCompare> IonTypeLineMap;
    143145  if (LineMapping == NULL) {
    144     eLog() << Verbose(0) << "map pointer is NULL: " << LineMapping << endl;
     146    DoeLog(0) && (eLog()<< Verbose(0) << "map pointer is NULL: " << LineMapping << endl);
    145147    performCriticalExit();
    146148    return;
     
    149151  // put all into hashed map
    150152  for (int i=0; i<NoAtoms; ++i) {
    151     LineList.insert(pair<const char *, int> (buffer[CurrentLine+i], CurrentLine+i));
     153    IonTypeLineMap.insert(pair<const char *, int> (buffer[CurrentLine+i], CurrentLine+i));
    152154  }
    153155
    154156  // fill map
    155157  int nr=0;
    156   for (map<const char *, int, IonTypeCompare>::iterator runner = LineList.begin(); runner != LineList.end(); ++runner) {
     158  for (map<const char *, int, IonTypeCompare>::iterator runner = IonTypeLineMap.begin(); runner != IonTypeLineMap.end(); ++runner) {
    157159    if (CurrentLine+nr < NoLines)
    158160      LineMapping[CurrentLine+(nr++)] = runner->second;
    159161    else {
    160       eLog() << Verbose(0) << "config::MapIonTypesInBuffer - NoAtoms is wrong: We are past the end of the file!" << endl;
     162      DoeLog(0) && (eLog()<< Verbose(0) << "config::MapIonTypesInBuffer - NoAtoms is wrong: We are past the end of the file!" << endl);
    161163      performCriticalExit();
    162164    }
     
    248250        Thermostat = None;
    249251      } else {
    250         Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;
     252        DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);
    251253        Thermostat = None;
    252254      }
     
    256258        ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read scaling frequency
    257259      } else {
    258         Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;
     260        DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);
    259261        Thermostat = None;
    260262      }
     
    264266        ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read collision rate
    265267      } else {
    266         Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;
     268        DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);
    267269        Thermostat = None;
    268270      }
     
    272274        ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read gamma
    273275        if (ParseForParameter(verbose,fb,"Thermostat", 0, 3, 1, double_type, &alpha, 1, optional)) {
    274           Log() << Verbose(2) << "Extended Stochastic Thermostat detected with interpolation coefficient " << alpha << "." << endl;
     276          DoLog(2) && (Log() << Verbose(2) << "Extended Stochastic Thermostat detected with interpolation coefficient " << alpha << "." << endl);
    275277        } else {
    276278          alpha = 1.;
    277279        }
    278280      } else {
    279         Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;
     281        DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);
    280282        Thermostat = None;
    281283      }
     
    285287        ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read \tau_T
    286288      } else {
    287         Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;
     289        DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);
    288290        Thermostat = None;
    289291      }
     
    294296        alpha = 0.;
    295297      } else {
    296         Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl;
     298        DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);
    297299        Thermostat = None;
    298300      }
    299301    } else {
    300       Log() << Verbose(1) << " Warning: thermostat name was not understood!" << endl;
     302      DoLog(1) && (Log() << Verbose(1) << " Warning: thermostat name was not understood!" << endl);
    301303      Thermostat = None;
    302304    }
    303305  } else {
    304306    if ((MaxOuterStep > 0) && (TargetTemp != 0))
    305       Log() << Verbose(2) <<  "No thermostat chosen despite finite temperature MD, falling back to None." << endl;
     307      DoLog(2) && (Log() << Verbose(2) <<  "No thermostat chosen despite finite temperature MD, falling back to None." << endl);
    306308    Thermostat = None;
    307309  }
     
    319321
    320322  do {
    321     Log() << Verbose(0) << "===========EDIT CONFIGURATION============================" << endl;
    322     Log() << Verbose(0) << " A - mainname (prefix for all runtime files)" << endl;
    323     Log() << Verbose(0) << " B - Default path (for runtime files)" << endl;
    324     Log() << Verbose(0) << " C - Path of pseudopotential files" << endl;
    325     Log() << Verbose(0) << " D - Number of coefficient sharing processes" << endl;
    326     Log() << Verbose(0) << " E - Number of wave function sharing processes" << endl;
    327     Log() << Verbose(0) << " F - 0: Don't output density for OpenDX, 1: do" << endl;
    328     Log() << Verbose(0) << " G - 0: Don't output physical data, 1: do" << endl;
    329     Log() << Verbose(0) << " H - 0: Don't output densities of each unperturbed orbital for OpenDX, 1: do" << endl;
    330     Log() << Verbose(0) << " I - 0: Don't output current density for OpenDX, 1: do" << endl;
    331     Log() << Verbose(0) << " J - 0: Don't do the full current calculation, 1: do" << endl;
    332     Log() << Verbose(0) << " K - 0: Don't do perturbation calculation to obtain susceptibility and shielding, 1: do" << endl;
    333     Log() << Verbose(0) << " L - 0: Wannier centres as calculated, 1: common centre for all, 2: unite centres according to spread, 3: cell centre, 4: shifted to nearest grid point" << endl;
    334     Log() << Verbose(0) << " M - Absolute begin of unphysical sawtooth transfer for position operator within cell" << endl;
    335     Log() << Verbose(0) << " N - (0,1,2) x,y,z-plane to do two-dimensional current vector cut" << endl;
    336     Log() << Verbose(0) << " O - Absolute position along vector cut axis for cut plane" << endl;
    337     Log() << Verbose(0) << " P - Additional Gram-Schmidt-Orthonormalization to stabilize numerics" << endl;
    338     Log() << Verbose(0) << " Q - Initial integer value of random number generator" << endl;
    339     Log() << Verbose(0) << " R - for perturbation 0, for structure optimization defines upper limit of iterations" << endl;
    340     Log() << Verbose(0) << " T - Output visual after ...th step" << endl;
    341     Log() << Verbose(0) << " U - Output source densities of wave functions after ...th step" << endl;
    342     Log() << Verbose(0) << " X - minimization iterations per wave function, if unsure leave at default value 0" << endl;
    343     Log() << Verbose(0) << " Y - tolerance value for total spread in iterative Jacobi diagonalization" << endl;
    344     Log() << Verbose(0) << " Z - Maximum number of minimization iterations" << endl;
    345     Log() << Verbose(0) << " a - Relative change in total energy to stop min. iteration" << endl;
    346     Log() << Verbose(0) << " b - Relative change in kinetic energy to stop min. iteration" << endl;
    347     Log() << Verbose(0) << " c - Check stop conditions every ..th step during min. iteration" << endl;
    348     Log() << Verbose(0) << " e - Maximum number of minimization iterations during initial level" << endl;
    349     Log() << Verbose(0) << " f - Relative change in total energy to stop min. iteration during initial level" << endl;
    350     Log() << Verbose(0) << " g - Relative change in kinetic energy to stop min. iteration during initial level" << endl;
    351     Log() << Verbose(0) << " h - Check stop conditions every ..th step during min. iteration during initial level" << endl;
     323    DoLog(0) && (Log() << Verbose(0) << "===========EDIT CONFIGURATION============================" << endl);
     324    DoLog(0) && (Log() << Verbose(0) << " A - mainname (prefix for all runtime files)" << endl);
     325    DoLog(0) && (Log() << Verbose(0) << " B - Default path (for runtime files)" << endl);
     326    DoLog(0) && (Log() << Verbose(0) << " C - Path of pseudopotential files" << endl);
     327    DoLog(0) && (Log() << Verbose(0) << " D - Number of coefficient sharing processes" << endl);
     328    DoLog(0) && (Log() << Verbose(0) << " E - Number of wave function sharing processes" << endl);
     329    DoLog(0) && (Log() << Verbose(0) << " F - 0: Don't output density for OpenDX, 1: do" << endl);
     330    DoLog(0) && (Log() << Verbose(0) << " G - 0: Don't output physical data, 1: do" << endl);
     331    DoLog(0) && (Log() << Verbose(0) << " H - 0: Don't output densities of each unperturbed orbital for OpenDX, 1: do" << endl);
     332    DoLog(0) && (Log() << Verbose(0) << " I - 0: Don't output current density for OpenDX, 1: do" << endl);
     333    DoLog(0) && (Log() << Verbose(0) << " J - 0: Don't do the full current calculation, 1: do" << endl);
     334    DoLog(0) && (Log() << Verbose(0) << " K - 0: Don't do perturbation calculation to obtain susceptibility and shielding, 1: do" << endl);
     335    DoLog(0) && (Log() << Verbose(0) << " L - 0: Wannier centres as calculated, 1: common centre for all, 2: unite centres according to spread, 3: cell centre, 4: shifted to nearest grid point" << endl);
     336    DoLog(0) && (Log() << Verbose(0) << " M - Absolute begin of unphysical sawtooth transfer for position operator within cell" << endl);
     337    DoLog(0) && (Log() << Verbose(0) << " N - (0,1,2) x,y,z-plane to do two-dimensional current vector cut" << endl);
     338    DoLog(0) && (Log() << Verbose(0) << " O - Absolute position along vector cut axis for cut plane" << endl);
     339    DoLog(0) && (Log() << Verbose(0) << " P - Additional Gram-Schmidt-Orthonormalization to stabilize numerics" << endl);
     340    DoLog(0) && (Log() << Verbose(0) << " Q - Initial integer value of random number generator" << endl);
     341    DoLog(0) && (Log() << Verbose(0) << " R - for perturbation 0, for structure optimization defines upper limit of iterations" << endl);
     342    DoLog(0) && (Log() << Verbose(0) << " T - Output visual after ...th step" << endl);
     343    DoLog(0) && (Log() << Verbose(0) << " U - Output source densities of wave functions after ...th step" << endl);
     344    DoLog(0) && (Log() << Verbose(0) << " X - minimization iterations per wave function, if unsure leave at default value 0" << endl);
     345    DoLog(0) && (Log() << Verbose(0) << " Y - tolerance value for total spread in iterative Jacobi diagonalization" << endl);
     346    DoLog(0) && (Log() << Verbose(0) << " Z - Maximum number of minimization iterations" << endl);
     347    DoLog(0) && (Log() << Verbose(0) << " a - Relative change in total energy to stop min. iteration" << endl);
     348    DoLog(0) && (Log() << Verbose(0) << " b - Relative change in kinetic energy to stop min. iteration" << endl);
     349    DoLog(0) && (Log() << Verbose(0) << " c - Check stop conditions every ..th step during min. iteration" << endl);
     350    DoLog(0) && (Log() << Verbose(0) << " e - Maximum number of minimization iterations during initial level" << endl);
     351    DoLog(0) && (Log() << Verbose(0) << " f - Relative change in total energy to stop min. iteration during initial level" << endl);
     352    DoLog(0) && (Log() << Verbose(0) << " g - Relative change in kinetic energy to stop min. iteration during initial level" << endl);
     353    DoLog(0) && (Log() << Verbose(0) << " h - Check stop conditions every ..th step during min. iteration during initial level" << endl);
    352354//    Log() << Verbose(0) << " j - six lower diagonal entries of matrix, defining the unit cell" << endl;
    353     Log() << Verbose(0) << " k - Energy cutoff of plane wave basis in Hartree" << endl;
    354     Log() << Verbose(0) << " l - Maximum number of levels in multi-level-ansatz" << endl;
    355     Log() << Verbose(0) << " m - Factor by which grid nodes increase between standard and upper level" << endl;
    356     Log() << Verbose(0) << " n - 0: Don't use RiemannTensor, 1: Do" << endl;
    357     Log() << Verbose(0) << " o - Factor by which grid nodes increase between Riemann and standard(?) level" << endl;
    358     Log() << Verbose(0) << " p - Number of Riemann levels" << endl;
    359     Log() << Verbose(0) << " r - 0: Don't Use RiemannTensor, 1: Do" << endl;
    360     Log() << Verbose(0) << " s - 0: Doubly occupied orbitals, 1: Up-/Down-Orbitals" << endl;
    361     Log() << Verbose(0) << " t - Number of orbitals (depends pn SpinType)" << endl;
    362     Log() << Verbose(0) << " u - Number of SpinUp orbitals (depends on SpinType)" << endl;
    363     Log() << Verbose(0) << " v - Number of SpinDown orbitals (depends on SpinType)" << endl;
    364     Log() << Verbose(0) << " w - Number of additional, unoccupied orbitals" << endl;
    365     Log() << Verbose(0) << " x - radial cutoff for ewald summation in Bohrradii" << endl;
    366     Log() << Verbose(0) << " y - 0: Don't do structure optimization beforehand, 1: Do" << endl;
    367     Log() << Verbose(0) << " z - 0: Units are in Bohr radii, 1: units are in Aengstrom" << endl;
    368     Log() << Verbose(0) << " i - 0: Coordinates given in file are absolute, 1: ... are relative to unit cell" << endl;
    369     Log() << Verbose(0) << "=========================================================" << endl;
    370     Log() << Verbose(0) << "INPUT: ";
     355    DoLog(0) && (Log() << Verbose(0) << " k - Energy cutoff of plane wave basis in Hartree" << endl);
     356    DoLog(0) && (Log() << Verbose(0) << " l - Maximum number of levels in multi-level-ansatz" << endl);
     357    DoLog(0) && (Log() << Verbose(0) << " m - Factor by which grid nodes increase between standard and upper level" << endl);
     358    DoLog(0) && (Log() << Verbose(0) << " n - 0: Don't use RiemannTensor, 1: Do" << endl);
     359    DoLog(0) && (Log() << Verbose(0) << " o - Factor by which grid nodes increase between Riemann and standard(?) level" << endl);
     360    DoLog(0) && (Log() << Verbose(0) << " p - Number of Riemann levels" << endl);
     361    DoLog(0) && (Log() << Verbose(0) << " r - 0: Don't Use RiemannTensor, 1: Do" << endl);
     362    DoLog(0) && (Log() << Verbose(0) << " s - 0: Doubly occupied orbitals, 1: Up-/Down-Orbitals" << endl);
     363    DoLog(0) && (Log() << Verbose(0) << " t - Number of orbitals (depends pn SpinType)" << endl);
     364    DoLog(0) && (Log() << Verbose(0) << " u - Number of SpinUp orbitals (depends on SpinType)" << endl);
     365    DoLog(0) && (Log() << Verbose(0) << " v - Number of SpinDown orbitals (depends on SpinType)" << endl);
     366    DoLog(0) && (Log() << Verbose(0) << " w - Number of additional, unoccupied orbitals" << endl);
     367    DoLog(0) && (Log() << Verbose(0) << " x - radial cutoff for ewald summation in Bohrradii" << endl);
     368    DoLog(0) && (Log() << Verbose(0) << " y - 0: Don't do structure optimization beforehand, 1: Do" << endl);
     369    DoLog(0) && (Log() << Verbose(0) << " z - 0: Units are in Bohr radii, 1: units are in Aengstrom" << endl);
     370    DoLog(0) && (Log() << Verbose(0) << " i - 0: Coordinates given in file are absolute, 1: ... are relative to unit cell" << endl);
     371    DoLog(0) && (Log() << Verbose(0) << "=========================================================" << endl);
     372    DoLog(0) && (Log() << Verbose(0) << "INPUT: ");
    371373    cin >> choice;
    372374
    373375    switch (choice) {
    374376        case 'A': // mainname
    375           Log() << Verbose(0) << "Old: " << config::mainname << "\t new: ";
     377          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::mainname << "\t new: ");
    376378          cin >> config::mainname;
    377379          break;
    378380        case 'B': // defaultpath
    379           Log() << Verbose(0) << "Old: " << config::defaultpath << "\t new: ";
     381          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::defaultpath << "\t new: ");
    380382          cin >> config::defaultpath;
    381383          break;
    382384        case 'C': // pseudopotpath
    383           Log() << Verbose(0) << "Old: " << config::pseudopotpath << "\t new: ";
     385          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::pseudopotpath << "\t new: ");
    384386          cin >> config::pseudopotpath;
    385387          break;
    386388
    387389        case 'D': // ProcPEGamma
    388           Log() << Verbose(0) << "Old: " << config::ProcPEGamma << "\t new: ";
     390          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::ProcPEGamma << "\t new: ");
    389391          cin >> config::ProcPEGamma;
    390392          break;
    391393        case 'E': // ProcPEPsi
    392           Log() << Verbose(0) << "Old: " << config::ProcPEPsi << "\t new: ";
     394          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::ProcPEPsi << "\t new: ");
    393395          cin >> config::ProcPEPsi;
    394396          break;
    395397        case 'F': // DoOutVis
    396           Log() << Verbose(0) << "Old: " << config::DoOutVis << "\t new: ";
     398          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutVis << "\t new: ");
    397399          cin >> config::DoOutVis;
    398400          break;
    399401        case 'G': // DoOutMes
    400           Log() << Verbose(0) << "Old: " << config::DoOutMes << "\t new: ";
     402          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutMes << "\t new: ");
    401403          cin >> config::DoOutMes;
    402404          break;
    403405        case 'H': // DoOutOrbitals
    404           Log() << Verbose(0) << "Old: " << config::DoOutOrbitals << "\t new: ";
     406          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutOrbitals << "\t new: ");
    405407          cin >> config::DoOutOrbitals;
    406408          break;
    407409        case 'I': // DoOutCurrent
    408           Log() << Verbose(0) << "Old: " << config::DoOutCurrent << "\t new: ";
     410          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoOutCurrent << "\t new: ");
    409411          cin >> config::DoOutCurrent;
    410412          break;
    411413        case 'J': // DoFullCurrent
    412           Log() << Verbose(0) << "Old: " << config::DoFullCurrent << "\t new: ";
     414          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoFullCurrent << "\t new: ");
    413415          cin >> config::DoFullCurrent;
    414416          break;
    415417        case 'K': // DoPerturbation
    416           Log() << Verbose(0) << "Old: " << config::DoPerturbation << "\t new: ";
     418          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::DoPerturbation << "\t new: ");
    417419          cin >> config::DoPerturbation;
    418420          break;
    419421        case 'L': // CommonWannier
    420           Log() << Verbose(0) << "Old: " << config::CommonWannier << "\t new: ";
     422          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::CommonWannier << "\t new: ");
    421423          cin >> config::CommonWannier;
    422424          break;
    423425        case 'M': // SawtoothStart
    424           Log() << Verbose(0) << "Old: " << config::SawtoothStart << "\t new: ";
     426          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::SawtoothStart << "\t new: ");
    425427          cin >> config::SawtoothStart;
    426428          break;
    427429        case 'N': // VectorPlane
    428           Log() << Verbose(0) << "Old: " << config::VectorPlane << "\t new: ";
     430          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::VectorPlane << "\t new: ");
    429431          cin >> config::VectorPlane;
    430432          break;
    431433        case 'O': // VectorCut
    432           Log() << Verbose(0) << "Old: " << config::VectorCut << "\t new: ";
     434          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::VectorCut << "\t new: ");
    433435          cin >> config::VectorCut;
    434436          break;
    435437        case 'P': // UseAddGramSch
    436           Log() << Verbose(0) << "Old: " << config::UseAddGramSch << "\t new: ";
     438          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::UseAddGramSch << "\t new: ");
    437439          cin >> config::UseAddGramSch;
    438440          break;
    439441        case 'Q': // Seed
    440           Log() << Verbose(0) << "Old: " << config::Seed << "\t new: ";
     442          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::Seed << "\t new: ");
    441443          cin >> config::Seed;
    442444          break;
    443445
    444446        case 'R': // MaxOuterStep
    445           Log() << Verbose(0) << "Old: " << config::MaxOuterStep << "\t new: ";
     447          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxOuterStep << "\t new: ");
    446448          cin >> config::MaxOuterStep;
    447449          break;
    448450        case 'T': // OutVisStep
    449           Log() << Verbose(0) << "Old: " << config::OutVisStep << "\t new: ";
     451          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::OutVisStep << "\t new: ");
    450452          cin >> config::OutVisStep;
    451453          break;
    452454        case 'U': // OutSrcStep
    453           Log() << Verbose(0) << "Old: " << config::OutSrcStep << "\t new: ";
     455          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::OutSrcStep << "\t new: ");
    454456          cin >> config::OutSrcStep;
    455457          break;
    456458        case 'X': // MaxPsiStep
    457           Log() << Verbose(0) << "Old: " << config::MaxPsiStep << "\t new: ";
     459          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxPsiStep << "\t new: ");
    458460          cin >> config::MaxPsiStep;
    459461          break;
    460462        case 'Y': // EpsWannier
    461           Log() << Verbose(0) << "Old: " << config::EpsWannier << "\t new: ";
     463          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::EpsWannier << "\t new: ");
    462464          cin >> config::EpsWannier;
    463465          break;
    464466
    465467        case 'Z': // MaxMinStep
    466           Log() << Verbose(0) << "Old: " << config::MaxMinStep << "\t new: ";
     468          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxMinStep << "\t new: ");
    467469          cin >> config::MaxMinStep;
    468470          break;
    469471        case 'a': // RelEpsTotalEnergy
    470           Log() << Verbose(0) << "Old: " << config::RelEpsTotalEnergy << "\t new: ";
     472          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RelEpsTotalEnergy << "\t new: ");
    471473          cin >> config::RelEpsTotalEnergy;
    472474          break;
    473475        case 'b': // RelEpsKineticEnergy
    474           Log() << Verbose(0) << "Old: " << config::RelEpsKineticEnergy << "\t new: ";
     476          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RelEpsKineticEnergy << "\t new: ");
    475477          cin >> config::RelEpsKineticEnergy;
    476478          break;
    477479        case 'c': // MaxMinStopStep
    478           Log() << Verbose(0) << "Old: " << config::MaxMinStopStep << "\t new: ";
     480          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxMinStopStep << "\t new: ");
    479481          cin >> config::MaxMinStopStep;
    480482          break;
    481483        case 'e': // MaxInitMinStep
    482           Log() << Verbose(0) << "Old: " << config::MaxInitMinStep << "\t new: ";
     484          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxInitMinStep << "\t new: ");
    483485          cin >> config::MaxInitMinStep;
    484486          break;
    485487        case 'f': // InitRelEpsTotalEnergy
    486           Log() << Verbose(0) << "Old: " << config::InitRelEpsTotalEnergy << "\t new: ";
     488          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::InitRelEpsTotalEnergy << "\t new: ");
    487489          cin >> config::InitRelEpsTotalEnergy;
    488490          break;
    489491        case 'g': // InitRelEpsKineticEnergy
    490           Log() << Verbose(0) << "Old: " << config::InitRelEpsKineticEnergy << "\t new: ";
     492          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::InitRelEpsKineticEnergy << "\t new: ");
    491493          cin >> config::InitRelEpsKineticEnergy;
    492494          break;
    493495        case 'h': // InitMaxMinStopStep
    494           Log() << Verbose(0) << "Old: " << config::InitMaxMinStopStep << "\t new: ";
     496          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::InitMaxMinStopStep << "\t new: ");
    495497          cin >> config::InitMaxMinStopStep;
    496498          break;
     
    498500//        case 'j': // BoxLength
    499501//          Log() << Verbose(0) << "enter lower triadiagonalo form of basis matrix" << endl << endl;
     502//          double * const cell_size = World::get()->cell_size;
    500503//          for (int i=0;i<6;i++) {
    501504//            Log() << Verbose(0) << "Cell size" << i << ": ";
    502 //            cin >> mol->cell_size[i];
     505//            cin >> cell_size[i];
    503506//          }
    504507//          break;
    505508
    506509        case 'k': // ECut
    507           Log() << Verbose(0) << "Old: " << config::ECut << "\t new: ";
     510          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::ECut << "\t new: ");
    508511          cin >> config::ECut;
    509512          break;
    510513        case 'l': // MaxLevel
    511           Log() << Verbose(0) << "Old: " << config::MaxLevel << "\t new: ";
     514          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxLevel << "\t new: ");
    512515          cin >> config::MaxLevel;
    513516          break;
    514517        case 'm': // RiemannTensor
    515           Log() << Verbose(0) << "Old: " << config::RiemannTensor << "\t new: ";
     518          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RiemannTensor << "\t new: ");
    516519          cin >> config::RiemannTensor;
    517520          break;
    518521        case 'n': // LevRFactor
    519           Log() << Verbose(0) << "Old: " << config::LevRFactor << "\t new: ";
     522          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::LevRFactor << "\t new: ");
    520523          cin >> config::LevRFactor;
    521524          break;
    522525        case 'o': // RiemannLevel
    523           Log() << Verbose(0) << "Old: " << config::RiemannLevel << "\t new: ";
     526          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RiemannLevel << "\t new: ");
    524527          cin >> config::RiemannLevel;
    525528          break;
    526529        case 'p': // Lev0Factor
    527           Log() << Verbose(0) << "Old: " << config::Lev0Factor << "\t new: ";
     530          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::Lev0Factor << "\t new: ");
    528531          cin >> config::Lev0Factor;
    529532          break;
    530533        case 'r': // RTActualUse
    531           Log() << Verbose(0) << "Old: " << config::RTActualUse << "\t new: ";
     534          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RTActualUse << "\t new: ");
    532535          cin >> config::RTActualUse;
    533536          break;
    534537        case 's': // PsiType
    535           Log() << Verbose(0) << "Old: " << config::PsiType << "\t new: ";
     538          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::PsiType << "\t new: ");
    536539          cin >> config::PsiType;
    537540          break;
    538541        case 't': // MaxPsiDouble
    539           Log() << Verbose(0) << "Old: " << config::MaxPsiDouble << "\t new: ";
     542          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::MaxPsiDouble << "\t new: ");
    540543          cin >> config::MaxPsiDouble;
    541544          break;
    542545        case 'u': // PsiMaxNoUp
    543           Log() << Verbose(0) << "Old: " << config::PsiMaxNoUp << "\t new: ";
     546          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::PsiMaxNoUp << "\t new: ");
    544547          cin >> config::PsiMaxNoUp;
    545548          break;
    546549        case 'v': // PsiMaxNoDown
    547           Log() << Verbose(0) << "Old: " << config::PsiMaxNoDown << "\t new: ";
     550          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::PsiMaxNoDown << "\t new: ");
    548551          cin >> config::PsiMaxNoDown;
    549552          break;
    550553        case 'w': // AddPsis
    551           Log() << Verbose(0) << "Old: " << config::AddPsis << "\t new: ";
     554          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::AddPsis << "\t new: ");
    552555          cin >> config::AddPsis;
    553556          break;
    554557
    555558        case 'x': // RCut
    556           Log() << Verbose(0) << "Old: " << config::RCut << "\t new: ";
     559          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RCut << "\t new: ");
    557560          cin >> config::RCut;
    558561          break;
    559562        case 'y': // StructOpt
    560           Log() << Verbose(0) << "Old: " << config::StructOpt << "\t new: ";
     563          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::StructOpt << "\t new: ");
    561564          cin >> config::StructOpt;
    562565          break;
    563566        case 'z': // IsAngstroem
    564           Log() << Verbose(0) << "Old: " << config::IsAngstroem << "\t new: ";
     567          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::IsAngstroem << "\t new: ");
    565568          cin >> config::IsAngstroem;
    566569          break;
    567570        case 'i': // RelativeCoord
    568           Log() << Verbose(0) << "Old: " << config::RelativeCoord << "\t new: ";
     571          DoLog(0) && (Log() << Verbose(0) << "Old: " << config::RelativeCoord << "\t new: ");
    569572          cin >> config::RelativeCoord;
    570573          break;
     
    645648  }
    646649  strcpy(configname, ptr);
    647   Log() << Verbose(0) << "Found configpath: " << configpath << ", dir slash was found at " << last << ", config name is " << configname << "." << endl;
     650  DoLog(0) && (Log() << Verbose(0) << "Found configpath: " << configpath << ", dir slash was found at " << last << ", config name is " << configname << "." << endl);
    648651  delete[](buffer);
    649652};
     
    656659{
    657660  if (FileBuffer != NULL) {
    658     eLog() << Verbose(2) << "deleting present FileBuffer in PrepareFileBuffer()." << endl;
     661    DoeLog(2) && (eLog()<< Verbose(2) << "deleting present FileBuffer in PrepareFileBuffer()." << endl);
    659662    delete(FileBuffer);
    660663  }
     
    682685
    683686  if (mol == NULL) {
    684     eLog() << Verbose(0) << "Molecule is not allocated in LoadMolecule(), exit.";
     687    DoeLog(0) && (eLog()<< Verbose(0) << "Molecule is not allocated in LoadMolecule(), exit.");
    685688    performCriticalExit();
    686689  }
     
    688691  ParseForParameter(verbose,FileBuffer,"MaxTypes", 0, 1, 1, int_type, &(MaxTypes), 1, critical);
    689692  if (MaxTypes == 0) {
    690     eLog() << Verbose(0) << "There are no atoms according to MaxTypes in this config file." << endl;
    691     performCriticalExit();
     693    DoeLog(1) && (eLog()<< Verbose(1) << "There are no atoms according to MaxTypes in this config file." << endl);
     694    //performCriticalExit();
    692695  } else {
    693696    // prescan number of ions per type
    694     Log() << Verbose(0) << "Prescanning ions per type: " << endl;
     697    DoLog(0) && (Log() << Verbose(0) << "Prescanning ions per type: " << endl);
    695698    int NoAtoms = 0;
    696699    for (int i=0; i < MaxTypes; i++) {
     
    699702      ParseForParameter(verbose,FileBuffer, name, 0, 2, 1, int_type, &Z, 1, critical);
    700703      elementhash[i] = periode->FindElement(Z);
    701       Log() << Verbose(1) << i << ". Z = " << elementhash[i]->Z << " with " << No[i] << " ions." << endl;
     704      DoLog(1) && (Log() << Verbose(1) << i << ". Z = " << elementhash[i]->Z << " with " << No[i] << " ions." << endl);
    702705      NoAtoms += No[i];
    703706    }
     
    707710    sprintf(name,"Ion_Type%i",MaxTypes);
    708711    if (!ParseForParameter(verbose,FileBuffer, (const char*)name, 1, 1, 1, int_type, &value[0], 1, critical)) {
    709       eLog() << Verbose(0) << "There are no atoms in the config file!" << endl;
     712      DoeLog(0) && (eLog()<< Verbose(0) << "There are no atoms in the config file!" << endl);
    710713      performCriticalExit();
    711714      return;
     
    725728      bool status = true;
    726729      while (status) {
    727         Log() << Verbose(0) << "Currently parsing MD step " << repetition << "." << endl;
     730        DoLog(0) && (Log() << Verbose(0) << "Currently parsing MD step " << repetition << "." << endl);
    728731        for (int i=0; i < MaxTypes; i++) {
    729732          sprintf(name,"Ion_Type%i",i+1);
     
    791794      }
    792795      repetition--;
    793       Log() << Verbose(0) << "Found " << repetition << " trajectory steps." << endl;
     796      DoLog(0) && (Log() << Verbose(0) << "Found " << repetition << " trajectory steps." << endl);
    794797      if (repetition <= 1)  // if onyl one step, desactivate use of trajectories
    795798        mol->MDSteps = 0;
     
    803806              ParseForParameter(verbose,FileBuffer, "Ion_Type1_1", 0, 3, 1, double_type, &value[2], repetition, (repetition == 0) ? critical : optional))
    804807        repetition++;
    805       Log() << Verbose(0) << "I found " << repetition << " times the keyword Ion_Type1_1." << endl;
     808      DoLog(0) && (Log() << Verbose(0) << "I found " << repetition << " times the keyword Ion_Type1_1." << endl);
    806809      // parse in molecule coordinates
    807810      for (int i=0; i < MaxTypes; i++) {
     
    852855  ifstream *file = new ifstream(filename);
    853856  if (file == NULL) {
    854     eLog() << Verbose(1) << "config file " << filename << " missing!" << endl;
     857    DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl);
    855858    return;
    856859  }
     
    964967  // Unit cell and magnetic field
    965968  ParseForParameter(verbose,FileBuffer, "BoxLength", 0, 3, 3, lower_trigrid, BoxLength, 1, critical); /* Lattice->RealBasis */
    966   mol->cell_size[0] = BoxLength[0];
    967   mol->cell_size[1] = BoxLength[3];
    968   mol->cell_size[2] = BoxLength[4];
    969   mol->cell_size[3] = BoxLength[6];
    970   mol->cell_size[4] = BoxLength[7];
    971   mol->cell_size[5] = BoxLength[8];
     969  double * const cell_size = World::get()->cell_size;
     970  cell_size[0] = BoxLength[0];
     971  cell_size[1] = BoxLength[3];
     972  cell_size[2] = BoxLength[4];
     973  cell_size[3] = BoxLength[6];
     974  cell_size[4] = BoxLength[7];
     975  cell_size[5] = BoxLength[8];
    972976  //if (1) fprintf(stderr,"\n");
    973977
     
    10591063    BG = new BondGraph(IsAngstroem);
    10601064    if (BG->LoadBondLengthTable(BondGraphFileName)) {
    1061       Log() << Verbose(0) << "Bond length table loaded successfully." << endl;
     1065      DoLog(0) && (Log() << Verbose(0) << "Bond length table loaded successfully." << endl);
    10621066    } else {
    1063       eLog() << Verbose(1) << "Bond length table loading failed." << endl;
     1067      DoeLog(1) && (eLog()<< Verbose(1) << "Bond length table loading failed." << endl);
    10641068    }
    10651069  }
     
    10741078  // don't do this here ...
    10751079  //MolList->DissectMoleculeIntoConnectedSubgraphs(mol,this);
    1076 
    1077   delete(mol);
     1080  //delete(mol);
     1081
    10781082  delete(FileBuffer);
    10791083};
     
    10901094  ifstream *file = new ifstream(filename);
    10911095  if (file == NULL) {
    1092     eLog() << Verbose(1) << "config file " << filename << " missing!" << endl;
     1096    DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl);
    10931097    return;
    10941098  }
     
    11681172
    11691173  ParseForParameter(verbose,file, "BoxLength", 0, 3, 3, lower_trigrid, BoxLength, 1, critical); /* Lattice->RealBasis */
    1170   mol->cell_size[0] = BoxLength[0];
    1171   mol->cell_size[1] = BoxLength[3];
    1172   mol->cell_size[2] = BoxLength[4];
    1173   mol->cell_size[3] = BoxLength[6];
    1174   mol->cell_size[4] = BoxLength[7];
    1175   mol->cell_size[5] = BoxLength[8];
     1174  double * const cell_size = World::get()->cell_size;
     1175  cell_size[0] = BoxLength[0];
     1176  cell_size[1] = BoxLength[3];
     1177  cell_size[2] = BoxLength[4];
     1178  cell_size[3] = BoxLength[6];
     1179  cell_size[4] = BoxLength[7];
     1180  cell_size[5] = BoxLength[8];
    11761181  if (1) fprintf(stderr,"\n");
    11771182  config::DoPerturbation = 0;
     
    12491254  BG = new BondGraph(IsAngstroem);
    12501255  if (BG->LoadBondLengthTable(BondGraphFileName)) {
    1251     Log() << Verbose(0) << "Bond length table loaded successfully." << endl;
     1256    DoLog(0) && (Log() << Verbose(0) << "Bond length table loaded successfully." << endl);
    12521257  } else {
    1253     Log() << Verbose(0) << "Bond length table loading failed." << endl;
     1258    DoLog(0) && (Log() << Verbose(0) << "Bond length table loading failed." << endl);
    12541259  }
    12551260
     
    12581263  for (i=MAX_ELEMENTS;i--;)
    12591264    elementhash[i] = NULL;
    1260   Log() << Verbose(0) << "Parsing Ions ..." << endl;
     1265  DoLog(0) && (Log() << Verbose(0) << "Parsing Ions ..." << endl);
    12611266  No=0;
    12621267  found = 0;
    12631268  while (getline(*file,zeile,'\n')) {
    12641269    if (zeile.find("Ions_Data") == 0) {
    1265       Log() << Verbose(1) << "found Ions_Data...begin parsing" << endl;
     1270      DoLog(1) && (Log() << Verbose(1) << "found Ions_Data...begin parsing" << endl);
    12661271      found ++;
    12671272    }
     
    12771282      input >> b;     // element mass
    12781283      elementhash[No] = periode->FindElement(Z);
    1279       Log() << Verbose(1) << "AtomNo: " << AtomNo << "\tZ: " << Z << "\ta:" << a << "\tl:"  << l << "\b:" << b << "\tElement:" << elementhash[No] << "\t:" << endl;
     1284      DoLog(1) && (Log() << Verbose(1) << "AtomNo: " << AtomNo << "\tZ: " << Z << "\ta:" << a << "\tl:"  << l << "\b:" << b << "\tElement:" << elementhash[No] << "\t:" << endl);
    12801285      for(i=0;i<AtomNo;i++) {
    12811286        if (!getline(*file,zeile,'\n')) {// parse on and on
    1282           Log() << Verbose(2) << "Error: Too few items in ionic list of element" << elementhash[No] << "." << endl << "Exiting." << endl;
     1287          DoLog(2) && (Log() << Verbose(2) << "Error: Too few items in ionic list of element" << elementhash[No] << "." << endl << "Exiting." << endl);
    12831288          // return 1;
    12841289        } else {
     
    13111316  // bring MaxTypes up to date
    13121317  mol->CountElements();
     1318  const double * const cell_size = World::get()->cell_size;
    13131319  ofstream * const output = new ofstream(filename, ios::out);
    13141320  if (output != NULL) {
     
    13811387    *output << endl;
    13821388    *output << "BoxLength\t\t\t# (Length of a unit cell)" << endl;
    1383     *output << mol->cell_size[0] << "\t" << endl;
    1384     *output << mol->cell_size[1] << "\t" << mol->cell_size[2] << "\t" << endl;
    1385     *output << mol->cell_size[3] << "\t" << mol->cell_size[4] << "\t" << mol->cell_size[5] << "\t" << endl;
     1389    *output << cell_size[0] << "\t" << endl;
     1390    *output << cell_size[1] << "\t" << cell_size[2] << "\t" << endl;
     1391    *output << cell_size[3] << "\t" << cell_size[4] << "\t" << cell_size[5] << "\t" << endl;
    13861392    // FIXME
    13871393    *output << endl;
     
    14271433    return result;
    14281434  } else {
    1429     eLog() << Verbose(1) << "Cannot open output file:" << filename << endl;
     1435    DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open output file:" << filename << endl);
    14301436    return false;
    14311437  }
     
    14491455    output = new ofstream(fname->str().c_str(), ios::out);
    14501456    if (output == NULL) {
    1451       eLog() << Verbose(1) << "Cannot open mpqc output file:" << fname << endl;
     1457      DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open mpqc output file:" << fname << endl);
    14521458      delete(fname);
    14531459      return false;
     
    14921498    output = new ofstream(fname->str().c_str(), ios::out);
    14931499    if (output == NULL) {
    1494       eLog() << Verbose(1) << "Cannot open mpqc hessian output file:" << fname << endl;
     1500      DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open mpqc hessian output file:" << fname << endl);
    14951501      delete(fname);
    14961502      return false;
     
    15481554  f = fopen(name, "w" );
    15491555  if (f == NULL) {
    1550     eLog() << Verbose(1) << "Cannot open pdb output file:" << name << endl;
     1556    DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open pdb output file:" << name << endl);
    15511557    return false;
    15521558  }
     
    16031609  f = fopen(name, "w" );
    16041610  if (f == NULL) {
    1605     eLog() << Verbose(1) << "Cannot open pdb output file:" << name << endl;
     1611    DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open pdb output file:" << name << endl);
    16061612    Free(&elementNo);
    16071613    return false;
     
    16401646/** Stores all atoms in a TREMOLO data input file.
    16411647 * Note that this format cannot be parsed again.
     1648 * Note that TREMOLO does not like Id starting at 0, but at 1. Atoms with Id 0 are discarded!
    16421649 * \param *filename name of file (without ".in" suffix!)
    16431650 * \param *mol pointer to molecule
     
    16521659  output = new ofstream(fname->str().c_str(), ios::out);
    16531660  if (output == NULL) {
    1654     eLog() << Verbose(1) << "Cannot open tremolo output file:" << fname << endl;
     1661    DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open tremolo output file:" << fname << endl);
    16551662    delete(fname);
    16561663    return false;
     
    16941701/** Stores all atoms from all molecules in a TREMOLO data input file.
    16951702 * Note that this format cannot be parsed again.
     1703 * Note that TREMOLO does not like Id starting at 0, but at 1. Atoms with Id 0 are discarded!
    16961704 * \param *filename name of file (without ".in" suffix!)
    16971705 * \param *MolList pointer to MoleculeListClass containing all atoms
     
    17061714  output = new ofstream(fname->str().c_str(), ios::out);
    17071715  if (output == NULL) {
    1708     eLog() << Verbose(1) << "Cannot open tremolo output file:" << fname << endl;
     1716    DoeLog(1) && (eLog()<< Verbose(1) << "Cannot open tremolo output file:" << fname << endl);
    17091717    delete(fname);
    17101718    return false;
     
    17461754      while (Walker->next != (*MolWalker)->end) {
    17471755        Walker = Walker->next;
    1748         *output << AtomNo << "\t";
     1756        *output << AtomNo+1 << "\t";
    17491757        *output << Walker->Name << "\t";
    17501758        *output << (*MolWalker)->name << "\t";
    1751         *output << MolCounter << "\t";
     1759        *output << MolCounter+1 << "\t";
    17521760        *output << Walker->node->x[0] << "\t" << Walker->node->x[1] << "\t" << Walker->node->x[2] << "\t";
    17531761        *output << (double)Walker->type->Valence << "\t";
    17541762        *output << Walker->type->symbol << "\t";
    17551763        for (BondList::iterator runner = Walker->ListOfBonds.begin(); runner != Walker->ListOfBonds.end(); runner++)
    1756           *output << LocalNotoGlobalNoMap[MolCounter][ (*runner)->GetOtherAtom(Walker)->nr ] << "\t";
     1764          *output << LocalNotoGlobalNoMap[MolCounter][ (*runner)->GetOtherAtom(Walker)->nr ]+1 << "\t";
    17571765        for(int i=Walker->ListOfBonds.size(); i < MaxNeighbours; i++)
    17581766          *output << "-\t";
     
    21232131              }
    21242132              line++;
    2125             } while (dummy1 != NULL && (dummy1[0] == '#') || (dummy1[0] == '\n'));
     2133            } while ((dummy1 != NULL) && ((dummy1[0] == '#') || (dummy1[0] == '\n')));
    21262134            dummy = dummy1;
    21272135          } else { // simple int, strings or doubles start in the same line
Note: See TracChangeset for help on using the changeset viewer.