00001
00010 #ifndef HAATOM_H
00011 #define HAATOM_H
00012
00013 #include "haconst.h"
00014
00015 #include "hastl.h"
00016 #include "hastring.h"
00017 #include "vec3d.h"
00018
00019 class HaResidue;
00020 class HaChain;
00021 class HaMolecule;
00022 class HaMolSet;
00023 class ChemGroup;
00024 class AtomList;
00025
00026 const int ATOMREF_FULL = 0;
00027 const int ATOMREF_NO_MOL = 1;
00028 const int ATOMREF_NO_RES = 2;
00029
00030 class MatPoint : public Vec3D
00032 {
00033 public:
00034 MatPoint();
00035 virtual ~MatPoint();
00036
00037 const char* GetFFSymbol() const { return FFSymbol.c_str(); }
00038 const char* SetFFSymbol(HaString new_ff_symbol) { FFSymbol = new_ff_symbol;
00039 return(FFSymbol.c_str()); }
00040 virtual bool IsHydrogen() const { return false; }
00041 virtual bool IsAtom() const { return false; }
00042
00043 virtual void Select();
00044 virtual void UnSelect();
00045 virtual int Selected() const;
00046
00047 const char* GetRef(int ref_type = ATOMREF_FULL ) const;
00048 virtual bool FillRef(char* buf, int mode = ATOMREF_FULL) const;
00049
00050 int SetParamFrom(const MatPoint& pt_ref);
00051
00052 bool SetCharge(double new_charge){ charge = new_charge; return true;}
00053 double GetCharge() const { return charge; }
00054
00055 double GetMass() const { return mass; }
00056 bool SetMass( double new_mass ) { mass = new_mass; return true; }
00057
00058 double charge;
00059 double mass;
00060 double vdw_rad;
00061 double ew;
00062
00063
00064 HaString FFSymbol;
00065
00066 protected:
00067
00068 };
00069
00070
00071 const int SphereFlag = 0x02;
00072 const int HeteroFlag = 0x04;
00073 const int HydrogenFlag = 0x08;
00074 const int NormAtomFlag = 0x10;
00075 const int NonBondFlag = 0x20;
00076 const int BreakFlag = 0x40;
00077 const int DisplayedFlag = 0x80;
00078 const int HBDonorFlag = 0x100;
00079 const int HBAcceptorFlag= 0x200;
00080
00081 enum HYBRIDIZATION { NO_HYBRID, SP_HYBRID, SP2_HYBRID, SP3_HYBRID };
00082
00084 class HaAtom : public MatPoint
00085 {
00086 public:
00087 HaAtom();
00088 HaAtom(HaResidue* new_phost_res);
00089 virtual ~HaAtom();
00090
00091 bool SetParamFrom(const HaAtom& atom_ref);
00092
00093 int GetElemNo() const;
00094 void SetElemNo(const int new_elem_no);
00095 int SetName(const char* AtName);
00096 const char* GetName() const;
00097
00098 HaString GetStdSymbol() const;
00099
00100
00101 bool operator==(const HaAtom& rhs) const;
00102 bool operator< (const HaAtom& rhs) const;
00103
00104
00105
00106 virtual void Select();
00107 virtual void UnSelect();
00108 virtual int Selected() const;
00109
00110 bool IsDrawSphere() const;
00111 void SetDrawSphere(bool set_mode);
00112
00113 void SetDisplayed( bool set_mode);
00114 bool IsDisplayed() const;
00115
00116 virtual bool IsAtom() const { return true; }
00117 virtual bool IsHydrogen() const;
00118
00119
00120
00121 bool IsHBDonor() const;
00122 bool IsHBAcceptor() const;
00123 void SetHBDonor( bool set_mode);
00124 void SetHBAcceptor( bool set_mode);
00125 int SetHBStatus(const char* hb_status_str);
00126 int GetHBStatusTextStr(HaString& hb_status_str);
00127
00128
00129
00130 HaResidue* GetHostRes();
00131 const HaResidue* GetHostRes() const;
00132 HaChain* GetHostChain();
00133 const HaChain* GetHostChain() const;
00134 ChemGroup* GetHostChemGroup();
00135 HaMolecule* GetHostMol();
00136 const HaMolecule* GetHostMol() const;
00137 HaMolSet* GetHostMolSet();
00138 const HaMolSet* GetHostMolSet() const;
00139
00140 void SetHostRes(HaResidue* new_phost_res);
00141
00142 int GetBondedAtoms(AtomList& bonded_atoms);
00143 bool IsBonded(HaAtom& at2);
00144
00145 static int CreateBond(HaAtom* aptr1, HaAtom* aptr2);
00146 static int DeleteBond(HaAtom* aptr1, HaAtom* aptr2);
00147
00149 static int GetReachableAtoms(AtomList& block_atoms, HaAtom* aptr2, AtomList& reach_atoms, int& loop);
00150
00151 static void FillStdAtomTypes();
00152 static StrVec ElemDesc;
00153
00154 bool IsSameName(const HaAtom* aptr_ref) const;
00155
00156
00157
00158 static int AtTypeFromLbl(HaString & Label);
00159
00160 bool Print_info(ostream &sout, const int level) const;
00161
00162 virtual bool FillRef(char* buf, int ref_type = ATOMREF_FULL ) const;
00163
00164 int GetSerNo() const;
00165
00166
00167
00168 static int NewAtomType(const char* ptr);
00169
00170 static int GetElemNoFromName(const HaString at_name, const HaResidue* pres = NULL);
00171 static const char* GetStdSymbolElem(int elem);
00172 static double ElemVDWRadius(int elem,
00173 bool united_atom_flag = false);
00174 static double StdElemMass(int elem);
00175
00176 static double ElemDuttonRadius(int elem);
00177
00178 bool IsAlphaCarbon() const ;
00179 bool IsSugarPhosphate() const ;
00180 bool IsAminoBackbone() const ;
00181 bool IsShapelyBackbone() const ;
00182 bool IsNucleicBackbone() const ;
00183 bool IsShapelySpecial() const ;
00184 bool IsCysteineSulfur() const ;
00185
00186
00187
00188 short x, y, z;
00189 double tempf;
00190 short col;
00191
00192 HaString label;
00193 Byte elemno;
00194 int refno;
00195 unsigned int flag;
00196 char altl;
00197 double radius;
00198 double image_radius;
00199 short irad;
00200 short mbox;
00201 double solv_access_surf;
00202
00203
00204 HYBRIDIZATION hybrid;
00205
00206 HYBRIDIZATION GetHybrid() const { return hybrid; }
00207 int GetHybridTextStr(HaString& hybrid_str) const;
00208 int SetHybrid( HaString hybrid_str );
00209
00210 static double StdBondLen(const HaAtom* aptr1, const HaAtom* aptr2);
00211
00212 int nbonds;
00213
00214 protected:
00215 HaResidue* phost_res;
00216
00217 void SetDefaultParam();
00218 };
00219
00220
00221 class MatPoint_double_map : public map<MatPoint*,double, less<MatPoint*> >
00222 {
00223 public:
00224
00225 MatPoint_double_map(const char* new_name = "");
00226 virtual ~MatPoint_double_map();
00227
00228 HaString name;
00229
00230 double GetValueFor(MatPoint* mpt);
00231 int ModifyValueFor(MatPoint* mpt, double new_val);
00232 const char* GetName() { return name.c_str(); }
00233 void SetName(const char* new_name) { name = new_name; }
00234
00235 };
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247 const int MAXELEMNO = 104;
00248 typedef struct {
00249 char symbol[2];
00250 double covalrad;
00251 double vdwrad;
00252 double mass;
00253 int cpkcol;
00254 char *name;
00255 } ElemStruct;
00256
00257
00258 #ifdef HAATOM_CPP
00259 ElemStruct ElementArr[MAXELEMNO] = {
00260 { { ' ', ' ' }, 0.72 /BOHR_TO_ANG, 1.44 /BOHR_TO_ANG, 1.000, 12, "" },
00261 { { 'H', ' ' }, 0.32 /BOHR_TO_ANG, 1.1 /BOHR_TO_ANG, 1.0079, 4, "HYDROGEN" },
00262 { { 'H', 'e' }, 1.6 /BOHR_TO_ANG, 2.2 /BOHR_TO_ANG, 4.0026, 5, "HELIUM" },
00263 { { 'L', 'i' }, 0.68 /BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 6.9400, 14, "LITHIUM" },
00264 { { 'B', 'e' }, 0.352/BOHR_TO_ANG, 0.628/BOHR_TO_ANG, 9.0122, 12, "BERYLLIUM" },
00265 { { 'B', ' ' }, 0.832/BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 10.810, 13, "BORON" },
00266 { { 'C', ' ' }, 0.72 /BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 12.011, 0, "CARBON" },
00267 { { 'N', ' ' }, 0.68 /BOHR_TO_ANG, 1.4 /BOHR_TO_ANG, 14.0067, 1, "NITROGEN" },
00268 { { 'O', ' ' }, 0.68 /BOHR_TO_ANG, 1.348/BOHR_TO_ANG, 15.9994, 2, "OXYGEN" },
00269 { { 'F', ' ' }, 0.64 /BOHR_TO_ANG, 1.3 /BOHR_TO_ANG, 18.9964, 6, "FLUORINE" },
00270 { { 'N', 'e' }, 1.12 /BOHR_TO_ANG, 2.02 /BOHR_TO_ANG, 20.17, 12, "NEON" },
00271 { { 'N', 'a' }, 0.972/BOHR_TO_ANG, 2.2 /BOHR_TO_ANG, 22.9898, 7, "SODIUM" },
00272 { { 'M', 'g' }, 1.1 /BOHR_TO_ANG, 1.5 /BOHR_TO_ANG, 24.305, 15, "MAGNESIUM" },
00273 { { 'A', 'l' }, 1.352/BOHR_TO_ANG, 1.5 /BOHR_TO_ANG, 26.9815, 9, "ALUMINIUM" },
00274 { { 'S', 'i' }, 1.2 /BOHR_TO_ANG, 2.2 /BOHR_TO_ANG, 26.086, 6, "SILICON" },
00275 { { 'P', ' ' }, 1.036/BOHR_TO_ANG, 1.88 /BOHR_TO_ANG, 30.9738, 8, "PHOSPHORUS" },
00276 { { 'S', ' ' }, 1.02 /BOHR_TO_ANG, 1.808/BOHR_TO_ANG, 32.0600, 3, "SULFUR" },
00277 { { 'C', 'l' }, 1 /BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 35.453, 13, "CHLORINE" },
00278 { { 'A', 'r' }, 1.568/BOHR_TO_ANG, 2.768/BOHR_TO_ANG, 39.948, 12, "ARGON" },
00279 { { 'K', ' ' }, 1.328/BOHR_TO_ANG, 2.388/BOHR_TO_ANG, 39.090, 12, "POTASSIUM" },
00280 { { 'C', 'a' }, 0.992/BOHR_TO_ANG, 1.948/BOHR_TO_ANG, 40.08, 9, "CALCIUM" },
00281 { { 'S', 'c' }, 1.44 /BOHR_TO_ANG, 1.32 /BOHR_TO_ANG, 44.9559, 12, "SCANDIUM" },
00282 { { 'T', 'i' }, 1.472/BOHR_TO_ANG, 1.948/BOHR_TO_ANG, 47.9000, 9, "TITANIUM" },
00283 { { 'V', ' ' }, 1.328/BOHR_TO_ANG, 1.06 /BOHR_TO_ANG, 50.941, 12, "VANADIUM" },
00284 { { 'C', 'r' }, 1.352/BOHR_TO_ANG, 1.128/BOHR_TO_ANG, 51.966, 9, "CHROMIUM" },
00285 { { 'M', 'n' }, 1.352/BOHR_TO_ANG, 1.188/BOHR_TO_ANG, 54.938, 9, "MANGANESE" },
00286 { { 'F', 'e' }, 1.34 /BOHR_TO_ANG, 1.948/BOHR_TO_ANG, 55.847, 8, "IRON" },
00287 { { 'C', 'o' }, 1.328/BOHR_TO_ANG, 1.128/BOHR_TO_ANG, 58.9332, 12, "COBALT" },
00288 { { 'N', 'i' }, 1.62 /BOHR_TO_ANG, 1.24 /BOHR_TO_ANG, 58.71, 10, "NICKEL" },
00289 { { 'C', 'u' }, 1.52 /BOHR_TO_ANG, 1.148/BOHR_TO_ANG, 63.546, 10, "COPPER" },
00290 { { 'Z', 'n' }, 1.448/BOHR_TO_ANG, 1.148/BOHR_TO_ANG, 65.38, 10, "ZINC" },
00291 { { 'G', 'a' }, 1.22 /BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 69.72, 12, "GALLIUM" },
00292 { { 'G', 'e' }, 1.168/BOHR_TO_ANG, 3.996/BOHR_TO_ANG, 72.59, 12, "GERMANIUM" },
00293 { { 'A', 's' }, 1.208/BOHR_TO_ANG, 0.828/BOHR_TO_ANG, 74.9216, 12, "ARSENIC" },
00294 { { 'S', 'e' }, 1.22 /BOHR_TO_ANG, 0.9 /BOHR_TO_ANG, 78.96, 12, "SELENIUM" },
00295 { { 'B', 'r' }, 1.208/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 79.904, 10, "BROMINE" },
00296 { { 'K', 'r' }, 1.6 /BOHR_TO_ANG, 1.9 /BOHR_TO_ANG, 83.80, 12, "KRYPTON" },
00297 { { 'R', 'b' }, 1.472/BOHR_TO_ANG, 2.648/BOHR_TO_ANG, 85.467, 12, "RUBIDIUM" },
00298 { { 'S', 'r' }, 1.12 /BOHR_TO_ANG, 2.02 /BOHR_TO_ANG, 87.62, 12, "STRONTIUM" },
00299 { { 'Y', ' ' }, 1.78 /BOHR_TO_ANG, 1.608/BOHR_TO_ANG, 88.9059, 12, "YTTRIUM" },
00300 { { 'Z', 'r' }, 1.56 /BOHR_TO_ANG, 1.42 /BOHR_TO_ANG, 91.22, 12, "ZIRCONIUM" },
00301 { { 'N', 'b' }, 1.48 /BOHR_TO_ANG, 1.328/BOHR_TO_ANG, 92.9064, 12, "NIOBIUM" },
00302 { { 'M', 'o' }, 1.472/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 95.94, 12, "MOLYBDENUM" },
00303 { { 'T', 'c' }, 1.352/BOHR_TO_ANG, 1.8 /BOHR_TO_ANG, 98.9062, 12, "TECHNETIUM" },
00304 { { 'R', 'u' }, 1.6 /BOHR_TO_ANG, 2.0 /BOHR_TO_ANG, 101.07, 12, "RUTHENIUM" },
00305 { { 'R', 'h' }, 1.448/BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 102.9055,12, "RHODIUM" },
00306 { { 'P', 'd' }, 1.5 /BOHR_TO_ANG, 1.44 /BOHR_TO_ANG, 106.4, 12, "PALLADIUM" },
00307 { { 'A', 'g' }, 1.592/BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 107.868, 9, "SILVER" },
00308 { { 'C', 'd' }, 1.688/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 112.40, 12, "CADMIUM" },
00309 { { 'I', 'n' }, 1.632/BOHR_TO_ANG, 1.448/BOHR_TO_ANG, 114.82, 12, "INDIUM" },
00310 { { 'S', 'n' }, 1.46 /BOHR_TO_ANG, 1.668/BOHR_TO_ANG, 118.69, 12, "TIN", },
00311 { { 'S', 'b' }, 1.46 /BOHR_TO_ANG, 1.12 /BOHR_TO_ANG, 121.75, 12, "ANTIMONY" },
00312 { { 'T', 'e' }, 1.472/BOHR_TO_ANG, 1.26 /BOHR_TO_ANG, 127.60, 12, "TELLURIUM" },
00313 { { 'I', ' ' }, 1.4 /BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 126.9045,11, "IODINE" },
00314 { { 'X', 'e' }, 1.7 /BOHR_TO_ANG, 2.1 /BOHR_TO_ANG, 131.30, 12, "XENON" },
00315 { { 'C', 's' }, 1.672/BOHR_TO_ANG, 3.008/BOHR_TO_ANG, 132.9054,12, "CAESIUM" },
00316 { { 'B', 'a' }, 1.34 /BOHR_TO_ANG, 2.408/BOHR_TO_ANG, 137.34, 8, "BARIUM" },
00317 { { 'L', 'a' }, 1.872/BOHR_TO_ANG, 1.828/BOHR_TO_ANG, 138.9055,12, "LANTHANUM" },
00318 { { 'C', 'e' }, 1.832/BOHR_TO_ANG, 1.86 /BOHR_TO_ANG, 140.12, 12, "CERIUM" },
00319 { { 'P', 'r' }, 1.82 /BOHR_TO_ANG, 1.62 /BOHR_TO_ANG, 140.9077,12, "PRASEODYMIUM" },
00320 { { 'N', 'd' }, 1.808/BOHR_TO_ANG, 1.788/BOHR_TO_ANG, 144.24, 12, "NEODYMIUM" },
00321 { { 'P', 'm' }, 1.8 /BOHR_TO_ANG, 1.76 /BOHR_TO_ANG, 145.0, 12, "PROMETHIUM" },
00322 { { 'S', 'm' }, 1.8 /BOHR_TO_ANG, 1.74 /BOHR_TO_ANG, 150.4, 12, "SAMARIUM" },
00323 { { 'E', 'u' }, 1.992/BOHR_TO_ANG, 1.96 /BOHR_TO_ANG, 151.96, 12, "EUROPIUM" },
00324 { { 'G', 'd' }, 1.792/BOHR_TO_ANG, 1.688/BOHR_TO_ANG, 157.25, 12, "GADOLINIUM" },
00325 { { 'T', 'b' }, 1.76 /BOHR_TO_ANG, 1.66 /BOHR_TO_ANG, 158.9254,12, "TERBIUM" },
00326 { { 'D', 'y' }, 1.752/BOHR_TO_ANG, 1.628/BOHR_TO_ANG, 162.50, 12, "DYSPROSIUM" },
00327 { { 'H', 'o' }, 1.74 /BOHR_TO_ANG, 1.608/BOHR_TO_ANG, 164.9304,12, "HOLMIUM" },
00328 { { 'E', 'r' }, 1.728/BOHR_TO_ANG, 1.588/BOHR_TO_ANG, 167.26, 12, "ERBIUM" },
00329 { { 'T', 'm' }, 1.72 /BOHR_TO_ANG, 1.568/BOHR_TO_ANG, 168.9342,12, "THULIUM" },
00330 { { 'Y', 'b' }, 1.94 /BOHR_TO_ANG, 1.54 /BOHR_TO_ANG, 173.04, 12, "YTTERBIUM" },
00331 { { 'L', 'u' }, 1.72 /BOHR_TO_ANG, 1.528/BOHR_TO_ANG, 174.97, 12, "LUTETIUM" },
00332 { { 'H', 'f' }, 1.568/BOHR_TO_ANG, 1.4 /BOHR_TO_ANG, 178.49, 12, "HAFNIUM" },
00333 { { 'T', 'a' }, 1.432/BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 280.947, 12, "TANTALUM" },
00334 { { 'W', ' ' }, 1.368/BOHR_TO_ANG, 1.26 /BOHR_TO_ANG, 183.85, 12, "TUNGSTEN" },
00335 { { 'R', 'e' }, 1.352/BOHR_TO_ANG, 1.3 /BOHR_TO_ANG, 186.2, 12, "RHENIUM" },
00336 { { 'O', 's' }, 1.368/BOHR_TO_ANG, 1.58 /BOHR_TO_ANG, 190.2, 12, "OSMIUM" },
00337 { { 'I', 'r' }, 1.32 /BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 192.22, 12, "IRIDIUM" },
00338 { { 'P', 't' }, 1.5 /BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 195.09, 12, "PLATINUM" },
00339 { { 'A', 'u' }, 1.5 /BOHR_TO_ANG, 1.448/BOHR_TO_ANG, 196.9665, 6, "GOLD" },
00340 { { 'H', 'g' }, 1.7 /BOHR_TO_ANG, 1.98 /BOHR_TO_ANG, 200.59, 12, "MERCURY" },
00341 { { 'T', 'l' }, 1.552/BOHR_TO_ANG, 1.708/BOHR_TO_ANG, 204.37, 12, "THALLIUM" },
00342 { { 'P', 'b' }, 1.54 /BOHR_TO_ANG, 2.16 /BOHR_TO_ANG, 207.200, 12, "LEAD" },
00343 { { 'B', 'i' }, 1.54 /BOHR_TO_ANG, 1.728/BOHR_TO_ANG, 208.9808,12, "BISMUTH" },
00344 { { 'P', 'o' }, 1.68 /BOHR_TO_ANG, 1.208/BOHR_TO_ANG, 209.0, 12, "POLONIUM" },
00345 { { 'A', 't' }, 1.208/BOHR_TO_ANG, 1.12 /BOHR_TO_ANG, 210.0, 12, "ASTATINE" },
00346 { { 'R', 'n' }, 1.9 /BOHR_TO_ANG, 2.3 /BOHR_TO_ANG, 222.0, 12, "RADON" },
00347 { { 'F', 'r' }, 1.8 /BOHR_TO_ANG, 3.24 /BOHR_TO_ANG, 223.0, 12, "FRANCIUM" },
00348 { { 'R', 'a' }, 1.432/BOHR_TO_ANG, 2.568/BOHR_TO_ANG, 226.0254,12, "RADIUM" },
00349 { { 'A', 'c' }, 1.18 /BOHR_TO_ANG, 2.12 /BOHR_TO_ANG, 227.00, 12, "ACTINIUM" },
00350 { { 'T', 'h' }, 1.02 /BOHR_TO_ANG, 1.84 /BOHR_TO_ANG, 232.0381,12, "THORIUM" },
00351 { { 'P', 'a' }, 0.888/BOHR_TO_ANG, 1.6 /BOHR_TO_ANG, 231.0359,12, "PROTACTINIUM" },
00352 { { 'U', ' ' }, 0.968/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 238.029, 12, "URANIUM" },
00353 { { 'N', 'p' }, 0.952/BOHR_TO_ANG, 1.708/BOHR_TO_ANG, 237.0482,12, "NEPTUNIUM" },
00354 { { 'P', 'u' }, 0.928/BOHR_TO_ANG, 1.668/BOHR_TO_ANG, 244.0, 12, "PLUTONIUM" },
00355 { { 'A', 'm' }, 0.92 /BOHR_TO_ANG, 1.66 /BOHR_TO_ANG, 243.0, 12, "AMERICIUM" },
00356 { { 'C', 'm' }, 0.912/BOHR_TO_ANG, 1.648/BOHR_TO_ANG, 247.0, 12, "CURIUM" },
00357 { { 'B', 'k' }, 0.9 /BOHR_TO_ANG, 1.64 /BOHR_TO_ANG, 247.0, 12, "BERKELIUM" },
00358 { { 'C', 'f' }, 0.888/BOHR_TO_ANG, 1.628/BOHR_TO_ANG, 251.0, 12, "CALIFORNIUM" },
00359 { { 'E', 's' }, 0.88 /BOHR_TO_ANG, 1.62 /BOHR_TO_ANG, 254.0, 12, "EINSTEINIUM" },
00360 { { 'F', 'm' }, 0.872/BOHR_TO_ANG, 1.608/BOHR_TO_ANG, 257.0, 12, "FERMIUM" },
00361 { { 'M', 'd' }, 0.86 /BOHR_TO_ANG, 1.6 /BOHR_TO_ANG, 258.0, 12, "MENDELEVIUM" },
00362 { { 'N', 'o' }, 0.848/BOHR_TO_ANG, 1.588/BOHR_TO_ANG, 259.0, 12, "NOBELIUM" },
00363 { { 'L', 'r' }, 0.84 /BOHR_TO_ANG, 1.58 /BOHR_TO_ANG, 260.0, 12, "LAWRENCIUM" }
00364 };
00365
00366 #else
00367
00368 extern ElemStruct ElementArr[MAXELEMNO];
00369
00370 #endif
00371
00372
00373 #endif
00374