00001
00007 #define EXTERN
00008 #include <cstdio>
00009 #include <cstring>
00010 #include <cstdlib>
00011 #include "input.h"
00012 #include <physconst.h>
00013 #include "global.h"
00014 #include "defines.h"
00015
00016 namespace psi { namespace input {
00017
00018 void atom_num(char *A, double *C)
00019 {
00020 int i=0;
00021 if(!strcmp(A,"GHOST") || !strcmp(A,"G")){
00022 *C = 0.00;
00023 }
00024 else if(!strcmp(A,"H") || !strcmp(A,"HYDROGEN")){
00025 *C = 1.00;
00026 }
00027 else if(!strcmp(A,"HE") || !strcmp(A,"HELIUM")){
00028 *C = 2.00;
00029 }
00030 else if(!strcmp(A,"LI")|| !strcmp(A,"LITHIUM")){
00031 *C = 3.00;
00032 }
00033 else if(!strcmp(A,"BE")|| !strcmp(A,"BERYLLIUM")){
00034 *C = 4.00;
00035 }
00036 else if(!strcmp(A,"B")|| !strcmp(A,"BORON")){
00037 *C = 5.00;
00038 }
00039 else if(!strcmp(A,"C") || !strcmp(A,"CARBON")){
00040 *C = 6.00;
00041 }
00042 else if(!strcmp(A,"N") || !strcmp(A,"NITROGEN")){
00043 *C = 7.00;
00044 }
00045 else if(!strcmp(A,"O") || !strcmp(A,"OXYGEN")){
00046 *C = 8.00;
00047 }
00048 else if(!strcmp(A,"F") || !strcmp(A,"FLUORINE")){
00049 *C = 9.00;
00050 }
00051 else if(!strcmp(A,"NE") || !strcmp(A,"NEON")){
00052 *C = 10.00;
00053 }
00054 else if(!strcmp(A,"NA") || !strcmp(A,"SODIUM")){
00055 *C = 11.00;
00056 }
00057 else if(!strcmp(A,"MG") || !strcmp(A,"MAGNESIUM")){
00058 *C = 12.00;
00059 }
00060 else if(!strcmp(A,"AL") || !strcmp(A,"ALUMINUM")){
00061 *C = 13.00;
00062 }
00063 else if(!strcmp(A,"SI") || !strcmp(A,"SILICON")){
00064 *C = 14.00;
00065 }
00066 else if(!strcmp(A,"P") || !strcmp(A,"PHOSPHORUS")){
00067 *C = 15.00;
00068 }
00069 else if(!strcmp(A,"S") || !strcmp(A,"SULPHUR") || !strcmp(A,"SULFUR")){
00070 *C = 16.00;
00071 }
00072 else if(!strcmp(A,"CL") || !strcmp(A,"CHLORINE")){
00073 *C = 17.00;
00074 }
00075 else if(!strcmp(A,"AR") || !strcmp(A,"ARGON")){
00076 *C = 18.00;
00077 }
00078 else if(!strcmp(A,"K") || !strcmp(A,"POTASSIUM")){
00079 *C = 19.00;
00080 }
00081 else if(!strcmp(A,"CA") || !strcmp(A,"CALCIUM")){
00082 *C = 20.00;
00083 }
00084 else if(!strcmp(A,"SC") || !strcmp(A,"SCANDIUM")){
00085 *C = 21.00;
00086 }
00087 else if(!strcmp(A,"TI") || !strcmp(A,"TITANIUM")){
00088 *C = 22.00;
00089 }
00090 else if(!strcmp(A,"V") || !strcmp(A,"VANADIUM")){
00091 *C = 23.00;
00092 }
00093 else if(!strcmp(A,"CR") || !strcmp(A,"CHROMIUM")){
00094 *C = 24.00;
00095 }
00096 else if(!strcmp(A,"MN") || !strcmp(A,"MANGANESE")){
00097 *C = 25.00;
00098 }
00099 else if(!strcmp(A,"FE") || !strcmp(A,"IRON")){
00100 *C = 26.00;
00101 }
00102 else if(!strcmp(A,"CO") || !strcmp(A,"COBALT")){
00103 *C = 27.00;
00104 }
00105 else if(!strcmp(A,"NI") || !strcmp(A,"NICKEL")){
00106 *C = 28.00;
00107 }
00108 else if(!strcmp(A,"CU") || !strcmp(A,"COPPER")){
00109 *C = 29.00;
00110 }
00111 else if(!strcmp(A,"ZN") || !strcmp(A,"ZINC")){
00112 *C = 30.00;
00113 }
00114 else if(!strcmp(A,"GA") || !strcmp(A,"GALLIUM")){
00115 *C = 31.00;
00116 }
00117 else if(!strcmp(A,"GE") || !strcmp(A,"GERMANIUM")){
00118 *C = 32.00;
00119 }
00120 else if(!strcmp(A,"AS") || !strcmp(A,"ARSENIC")){
00121 *C = 33.00;
00122 }
00123 else if(!strcmp(A,"SE") || !strcmp(A,"SELENIUM")){
00124 *C = 34.00;
00125 }
00126 else if(!strcmp(A,"BR") || !strcmp(A,"BROMINE")){
00127 *C = 35.00;
00128 }
00129 else if(!strcmp(A,"KR") || !strcmp(A,"KRYPTON")){
00130 *C = 36.00;
00131 }
00132 else if(!strcmp(A,"RB") || !strcmp(A,"RUBIDIUM")){
00133 *C = 37.00;
00134 }
00135 else if(!strcmp(A,"SR") || !strcmp(A,"STRONTIUM")){
00136 *C = 38.00;
00137 }
00138 else if(!strcmp(A,"Y") || !strcmp(A,"YTTRIUM")){
00139 *C = 39.00;
00140 }
00141 else if(!strcmp(A,"ZR") || !strcmp(A,"ZIRCONIUM")){
00142 *C = 40.00;
00143 }
00144 else if(!strcmp(A,"NB") || !strcmp(A,"NIOBIUM")){
00145 *C = 41.00;
00146 }
00147 else if(!strcmp(A,"MO") || !strcmp(A,"MOLYBDENUM")){
00148 *C = 42.00;
00149 }
00150 else if(!strcmp(A,"TC") || !strcmp(A,"TECHNETIUM")){
00151 *C = 43.00;
00152 }
00153 else if(!strcmp(A,"RU") || !strcmp(A,"RUTHENIUM")){
00154 *C = 44.00;
00155 }
00156 else if(!strcmp(A,"RH") || !strcmp(A,"RHODIUM")){
00157 *C = 45.00;
00158 }
00159 else if(!strcmp(A,"PD") || !strcmp(A,"PALLADIUM")){
00160 *C = 46.00;
00161 }
00162 else if(!strcmp(A,"AG") || !strcmp(A,"SILVER")){
00163 *C = 47.00;
00164 }
00165 else if(!strcmp(A,"CD") || !strcmp(A,"CADMIUM")){
00166 *C = 48.00;
00167 }
00168 else if(!strcmp(A,"IN") || !strcmp(A,"INDIUM")){
00169 *C = 49.00;
00170 }
00171 else if(!strcmp(A,"SN") || !strcmp(A,"TIN")){
00172 *C = 50.00;
00173 }
00174 else if(!strcmp(A,"SB") || !strcmp(A,"ANTIMONY")){
00175 *C = 51.00;
00176 }
00177 else if(!strcmp(A,"TE") || !strcmp(A,"TELLURIUM")){
00178 *C = 52.00;
00179 }
00180 else if(!strcmp(A,"I") || !strcmp(A,"IODINE")){
00181 *C = 53.00;
00182 }
00183 else if(!strcmp(A,"XE") || !strcmp(A,"XENON")){
00184 *C = 54.00;
00185 }
00186 else if(!strcmp(A,"CS") || !strcmp(A,"CESIUM")){
00187 *C = 55.00;
00188 }
00189 else if(!strcmp(A,"BA") || !strcmp(A,"BARIUM")){
00190 *C = 56.00;
00191 }
00192 else if(!strcmp(A,"LA") || !strcmp(A,"LANTHANUM")){
00193 *C = 57.00;
00194 }
00195 else if(!strcmp(A,"CE") || !strcmp(A,"CERIUM")){
00196 *C = 58.00;
00197 }
00198 else if(!strcmp(A,"PR") || !strcmp(A,"PRASEODYMIUM")){
00199 *C = 59.00;
00200 }
00201 else if(!strcmp(A,"ND") || !strcmp(A,"NEODYMIUM")){
00202 *C = 60.00;
00203 }
00204 else if(!strcmp(A,"PM") || !strcmp(A,"PROMETHIUM")){
00205 *C = 61.00;
00206 }
00207 else if(!strcmp(A,"SM") || !strcmp(A,"SAMARIUM")){
00208 *C = 62.00;
00209 }
00210 else if(!strcmp(A,"EU") || !strcmp(A,"EUROPIUM")){
00211 *C = 63.00;
00212 }
00213 else if(!strcmp(A,"GD") || !strcmp(A,"GADOLINIUM")){
00214 *C = 64.00;
00215 }
00216 else if(!strcmp(A,"TB") || !strcmp(A,"TERBIUM")){
00217 *C = 65.00;
00218 }
00219 else if(!strcmp(A,"DY") || !strcmp(A,"DYSPROSIUM")){
00220 *C = 66.00;
00221 }
00222 else if(!strcmp(A,"HO") || !strcmp(A,"HOLMIUM")){
00223 *C = 67.00;
00224 }
00225 else if(!strcmp(A,"ER") || !strcmp(A,"ERBIUM")){
00226 *C = 68.00;
00227 }
00228 else if(!strcmp(A,"TM") || !strcmp(A,"THULIUM")){
00229 *C = 69.00;
00230 }
00231 else if(!strcmp(A,"YB") || !strcmp(A,"YTTERBIUM")){
00232 *C = 70.00;
00233 }
00234 else if(!strcmp(A,"LU") || !strcmp(A,"LUTETIUM")){
00235 *C = 71.00;
00236 }
00237 else if(!strcmp(A,"HF") || !strcmp(A,"HAFNIUM")){
00238 *C = 72.00;
00239 }
00240 else if(!strcmp(A,"TA") || !strcmp(A,"TANTALUM")){
00241 *C = 73.00;
00242 }
00243 else if(!strcmp(A,"W") || !strcmp(A,"TUNGSTEN")){
00244 *C = 74.00;
00245 }
00246 else if(!strcmp(A,"RE") || !strcmp(A,"RHENIUM")){
00247 *C = 75.00;
00248 }
00249 else if(!strcmp(A,"OS") || !strcmp(A,"OSMIUM")){
00250 *C = 76.00;
00251 }
00252 else if(!strcmp(A,"IR") || !strcmp(A,"IRIDIUM")){
00253 *C = 77.00;
00254 }
00255 else if(!strcmp(A,"PT") || !strcmp(A,"PLATINUM")){
00256 *C = 78.00;
00257 }
00258 else if(!strcmp(A,"AU") || !strcmp(A,"GOLD")){
00259 *C = 79.00;
00260 }
00261 else if(!strcmp(A,"HG") || !strcmp(A,"MERCURY")){
00262 *C = 80.00;
00263 }
00264 else if(!strcmp(A,"TL") || !strcmp(A,"THALLIUM")){
00265 *C = 81.00;
00266 }
00267 else if(!strcmp(A,"PB") || !strcmp(A,"LEAD")){
00268 *C = 82.00;
00269 }
00270 else if(!strcmp(A,"BI") || !strcmp(A,"BISMUTH")){
00271 *C = 83.00;
00272 }
00273 else if(!strcmp(A,"PO") || !strcmp(A,"POLONIUM")){
00274 *C = 84.00;
00275 }
00276 else if(!strcmp(A,"AT") || !strcmp(A,"ASTATINE")){
00277 *C = 85.00;
00278 }
00279 else if(!strcmp(A,"RN") || !strcmp(A,"RADON")){
00280 *C = 86.00;
00281 }
00282 else if(!strcmp(A,"FR") || !strcmp(A,"FRANCIUM")){
00283 *C = 87.00;
00284 }
00285 else if(!strcmp(A,"RA") || !strcmp(A,"RADIUM")){
00286 *C = 88.00;
00287 }
00288 else if(!strcmp(A,"AC") || !strcmp(A,"ACTINIUM")){
00289 *C = 89.00;
00290 }
00291 else if(!strcmp(A,"TH") || !strcmp(A,"THORIUM")){
00292 *C = 90.00;
00293 }
00294 else if(!strcmp(A,"PA") || !strcmp(A,"PROTACTINIUM")){
00295 *C = 91.00;
00296 }
00297 else if(!strcmp(A,"U") || !strcmp(A,"URANIUM")){
00298 *C = 92.00;
00299 }
00300 else if(!strcmp(A,"NP") || !strcmp(A,"NEPTUNIUM")){
00301 *C = 93.00;
00302 }
00303 else if(!strcmp(A,"PU") || !strcmp(A,"PLUTONIUM")){
00304 *C = 94.00;
00305 }
00306 else if(!strcmp(A,"AM") || !strcmp(A,"AMERICIUM")){
00307 *C = 95.00;
00308 }
00309 else if(!strcmp(A,"CM") || !strcmp(A,"CURIUM")){
00310 *C = 96.00;
00311 }
00312 else if(!strcmp(A,"BK") || !strcmp(A,"BERKELIUM")){
00313 *C = 97.00;
00314 }
00315 else if(!strcmp(A,"CF") || !strcmp(A,"CALELSE IFORNIUM")){
00316 *C = 98.00;
00317 }
00318 else if(!strcmp(A,"ES") || !strcmp(A,"EINSTEINIUM")){
00319 *C = 99.00;
00320 }
00321 else if(!strcmp(A,"FM") || !strcmp(A,"FERMIUM")){
00322 *C = 100.00;
00323 }
00324 else if(!strcmp(A,"MD") || !strcmp(A,"MENDELEVIUM")){
00325 *C = 101.00;
00326 }
00327 else if(!strcmp(A,"NO") || !strcmp(A,"NOBELIUM")){
00328 *C = 102.00;
00329 }
00330 else if(!strcmp(A,"LR") || !strcmp(A,"LAWRENCIUM")){
00331 *C = 103.00;
00332 }
00333 else if(!strcmp(A,"UNQ")){
00334 *C = 104.00;
00335 }
00336 else if(!strcmp(A,"UNP")){
00337 *C = 105.00;
00338 }
00339 else if(!strcmp(A,"UNH")){
00340 *C = 106.00;
00341 }
00342 else if(!strcmp(A,"UNS")){
00343 *C = 107.00;
00344 }
00345 else if (i = atoi(A)) {
00346 *C = (double) i;
00347 }
00348 else
00349 punt("Unrecognized atom symbol/name!");
00350 }
00351
00352 }}