⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyvalagg.cc

📁 大型并行量子化学软件;支持密度泛函(DFT)。可以进行各种量子化学计算。支持CHARMM并行计算。非常具有应用价值。
💻 CC
字号:
//// keyvalagg.cc//// Copyright (C) 1996 Limit Point Systems, Inc.//// Author: Curtis Janssen <cljanss@limitpt.com>// Maintainer: LPS//// This file is part of the SC Toolkit.//// The SC Toolkit is free software; you can redistribute it and/or modify// it under the terms of the GNU Library General Public License as published by// the Free Software Foundation; either version 2, or (at your option)// any later version.//// The SC Toolkit is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU Library General Public License for more details.//// You should have received a copy of the GNU Library General Public License// along with the SC Toolkit; see the file COPYING.LIB.  If not, write to// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.//// The U.S. Government is granted a limited license as per AL 91-7.//extern "C" {#include <ctype.h>#include <stdlib.h>}#include <util/misc/formio.h>#include <util/keyval/keyval.h>using namespace std;using namespace sc;/////////////////////////////////////////////////////////////////////// AggregateKeyValAggregateKeyVal::AggregateKeyVal(const Ref<KeyVal>&kv0){  kv[0] = kv0;  kv[1] = 0;  kv[2] = 0;  kv[3] = 0;}AggregateKeyVal::AggregateKeyVal(const Ref<KeyVal>&kv0,const Ref<KeyVal>&kv1){  kv[0] = kv0;  kv[1] = kv1;  kv[2] = 0;  kv[3] = 0;}AggregateKeyVal::AggregateKeyVal(const Ref<KeyVal>&kv0,const Ref<KeyVal>&kv1,                                 const Ref<KeyVal>&kv2){  kv[0] = kv0;  kv[1] = kv1;  kv[2] = kv2;  kv[3] = 0;}AggregateKeyVal::AggregateKeyVal(const Ref<KeyVal>&kv0,const Ref<KeyVal>&kv1,                                 const Ref<KeyVal>&kv2,const Ref<KeyVal>&kv3){  kv[0] = kv0;  kv[1] = kv1;  kv[2] = kv2;  kv[3] = kv3;}AggregateKeyVal::~AggregateKeyVal(){}Ref<KeyVal>AggregateKeyVal::getkeyval(const char* keyword){  Ref<KeyVal> lastkeyval;  for (int i=0; i<MaxKeyVal && kv[i].nonnull(); i++) {      kv[i]->exists(keyword);      seterror(kv[i]->error());      if (error() != KeyVal::UnknownKeyword) return kv[i];      lastkeyval = kv[i];    }  // The last keyval in the list is used to lookup the value  // if the keyword is not found.  This only affects printing  // in verbose keyvals.  return lastkeyval;}Ref<KeyValValue>AggregateKeyVal::key_value(const char*arg, const KeyValValue &def){  Ref<KeyVal> kval = getkeyval(arg);  if (kval.nonnull()) return kval->key_value(arg,def);  else return 0;}intAggregateKeyVal::key_exists(const char* key){  Ref<KeyVal> kval = getkeyval(key);  if (kval.nonnull()) return kval->exists(key);  else return 0;}voidAggregateKeyVal::errortrace(ostream&fp){  fp << indent << "AggregateKeyVal: error: \"" << errormsg() << "\"" << endl;  for (int i = 0; i<4; i++) {      if (kv[i].nonnull()) {          fp << indent << "  KeyVal #" << i << ":" << endl;          fp << incindent;          kv[i]->errortrace(fp);          fp << decindent;        }    }}voidAggregateKeyVal::dump(ostream&fp){  fp << indent << "AggregateKeyVal: error: \"" << errormsg() << "\"" << endl;  for (int i = 0; i<4; i++) {      if (kv[i].nonnull()) {          fp << indent << "  KeyVal #" << i << ":" << endl;          fp << incindent;          kv[i]->dump(fp);          fp << decindent;        }    }}/////////////////////////////////////////////////////////////////////////////// Local Variables:// mode: c++// c-file-style: "CLJ"// End:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -