typedef struct  
{
    int citation_id;
    char name[80], version[80], date[80], type[80], contact_author[80];
    char contact_author_email[80],location[80],classification[200];
    char language[80],description[200];
}SOFTWARE;

typedef struct 
{
    int  id;
   const char *title, *year, *journal_volume;
   const char *page_first, *page_last, *journal_abbrev, *details;   
}CITATION;

typedef struct 
{
    int citation_id, ordinal ,ncite;
   const char *name;
}CITATION_AUTHOR;

typedef struct 
{
    SOFTWARE software;
    CITATION citation;
    int authors;
    CITATION_AUTHOR citation_author[20];
}SOFTWARE_INF; 

SOFTWARE_INF  software_all[40] = {
    {
// cns=0
        { //SOFTWARE
            1, "CNS", "?", "?", "package",  //id, name, *version, *date, *type,
            "Axel T. Brunger", "axel.brunger@yale.edu", //author,email
            "http://cns.csb.yale.edu/v1.1/",  //location
            "?", "Fortran_77",  //classification, language
            "A complete package for Xray and NMR system" //description
        },
        {//CITATION
            1, "Crystallography & NMR System", //id, title,
            "1998", "54", "905", "921",  //*year, *journal_volume,page_first, *page_last
            "ACTA CRYSTALLOGR.,SECT.D", //journal_abbrev
            "Acta Cryst. D 54, 905-921" //details
        }, 14, //authors
        {//SOFTWARE_INF
            {1, 1, 14, "Brunger, A.T."}, //citation_id, ordinal ,ncite,name
            {1, 1, 14, "Adams, P.D."},
            {1, 1, 14, "Clore, G.M."},
            {1, 1, 14, "Delano, W.L."},
            {1, 1, 14, "Gros, P."},
            {1, 1, 14, "Grosse-Kunstleve, R."},
            {1, 1, 14, "Jiang, J.-S."},
            {1, 1, 14, "Kuszewski, J."},
            {1, 1, 14, "Nilges, M."},
            {1, 1, 14, "Pannu, N.S."},
            {1, 1, 14, "Read, R.J."},
            {1, 1, 14, "Rice, L.M."},
            {1, 1, 14, "Simonson, T."},
            {1, 1, 14, "Warren, G."}
        }
    },

// mlphare=1
    {
        {
            1, "mlphare", "?", "?", "program",
            "Z.Otwinowski or E.Dodson", "ccp4@dl.ac.uk, ccp4@yorvic.york.ac.uk",
            "http://www.ccp4.ac.uk/main.html",
            "phasing", "Fortran_77",
            "maximum likelihood heavy atom refinement & phase calculation"
        },
        {
            1, "?",
            "1991", "? ", "? ", "? ",
            "Daresbury Study Weekend proceedings",
            "Daresbury Study Weekend proceedings"
        }, 1,
        {
            {1, 1, 1, "Otwinowski, Z."}
        }
    },

// solve=2
    {
        {
            1, "SOLVE", "?", "?", "program",
            "Tom Terwilliger", "terwilliger@LANL.gov",
            "http://www.solve.lanl.gov/",
            "?", "?",
            "Heavy atom location, phase calculation &refinement"
        },
        {
            1, "Automated MAD and MIR structure solution",
            "1999", "55 ", "849 ", "886 ",
            "ACTA CRYSTALLOGR.,SECT.D",
            "Acta Crystallographica D55, 849-86"
        }, 2,
        {
            {1, 1, 2, "Terwilliger, T.C "},
            {1, 1, 2, "Berendzen, J."}
        }
    },

// sharp=3
    {
        {
            1, "SHARP", "?", "?", "program",
            "de La Fortelle", "sharp-develop@globalphasing.com",
            "http://babinet.globalphasing.com/sharp/",
            "phasing", "?",
            "Heavy atom location, phase calculation &refinement"
        },
        {
            1, "Maximum-Likelihood Heavy-Atom Refinement for MIR & MAD",
            "1997", "276 ", "472 ", "494 ",
            "Methods in Enzymology ",
            "Methods in Enzymology 276 472-494 "
        }, 2,
        {
            {1, 1, 2, "de La Fortelle "},
            {1, 1, 2, "Bricogne, G."}
        }
    },

// shelx=4
    {
        {
            1, "SHELX", "?", "?", "package",
            "George Sheldrick ", "gsheldr@shelx.uni-ac.gwdg.de",
            "http://shelx.uni-ac.gwdg.de/SHELX/",
            "?", "Fortran",
            "A complete package for Xray structure determination"
        },
        {
            1, "shelx-97",
            "1997", "? ", "? ", " ? ",
            "? ",
            "?"
        }, 1,
        {
            {1, 1, 1, "Sheldrick, G."}
        }
    },

// SnB=5
    {
        {
            1, "SnB", "?", "?", "program",
            "Weeks, C.M", "sunya@buffalo",
            "http://www.hwi.buffalo.edu:80/SnB/ ",
            "phasing", "?",
            "Heavy atom location, phase calculation"
        },
        {
            1, "The design and implementation of SnB v2.0",
            "1999", "32 ", "120 ", "124 ",
            "J. Appl. Cryst. ",
            "J. Appl. Cryst.32, 120-124 "
        }, 2,
        {
            {1, 1, 2, "Weeks, C.M. "},
            {1, 1, 2, "Miller, R. "}
        }
    },

// BnP=6
    {
        {
            1, "BnP", "?", "?", "package",
            "Weeks, C.M", " bnp-help@hwi.buffalo.edu",
            "http://www.hwi.buffalo.edu/BnP/",
            "phasing", "Java & Fortran",
            "Heavy atom location, phase calculation &refinement"
        },
        {
            1, "Towards automated protein structure determination: BnP, the  SnB-PHASES  Interface",
            "2002", "217 ", "686 ", "693 ",
            "Z. Kristallogr. ",
            "Z. Kristallogr. 217, 686-693 "
        }, 9,
        {
            {1, 1, 9, "Weeks, C.M. "},
            {1, 1, 9, "Blessing, R.H. "},
            {1, 1, 9, "Miller, R. "},
            {1, 1, 9, "Mungee, S. "},
            {1, 1, 9, "Innus, M. "},
            {1, 1, 9, "Potter, S.A."},
            {1, 1, 9, "Rappleye, A. "},
            {1, 1, 9, "Xu, H. "},
            {1, 1, 9, "Furey, W. "}
        }
    },

// dm=7
    {
        {
            1, "DM", "?", "?", "program ",
            "K. Cowtan", "ccp4@dl.ac.uk",
            "http://www.ccp4.ac.uk/main.html",
            "density modification", "fortran",
            "density modification, phase extension, Non-crystallographic symmetry averaging"
        },
        {
            1, "CCP4 package",
            "1994", " 31", "34 ", " 38",
            "Joint CCP4 and ESF-EACBM Newsletter on Protein Crystallography ",
            "Joint CCP4 and ESF-EACBM Newsletter on Protein Crystallography,31, p34-38"
        }, 1,
        {
            {1, 1, 1, "Cowtan, K."}
        }
    },

// resolve=8
    {
        {
            1, "RESOLVE", "?", "?", "program",
            "Terwilliger, T. C", "terwilliger@LANL.gov",
            "http://www.solve.lanl.gov/",
            "phasing", "?",
            "density modification with biased model phases, model building"
        },
        {
            1, "Maximum likelihood density modification",
            "2000", " 56", "965 ", " 972",
            "ACTA CRYSTALLOGR.,SECT.D",
            "ACTA CRYSTALLOGR. D56, 965-972. "
        }, 1,
        {
            {1, 1, 1, "Terwilliger, T. C. "}
        }
    },

// Solomon = 9
    {
        {
            1, "Solomon", "?", "?", "program ",
            "Abrahams J. P.", "ccp4@dl.ac.uk",
            "http://www.ccp4.ac.uk/main.html",
            "density modification", "fortran",
            "density modification by averaging, solvent flipping and protein truncation"
        },
        {
            1, "?",
            "1996", "52 ", "30 ", "42 ",
            "ACTA CRYSTALLOGR.,SECT.D",
            "Acta Cryst. D52, 30-42  "
        }, 2,
        {
            {1, 1, 2, "Abrahams J. P."},
            {1, 1, 2, "Leslie A. G. W."}
        }
    },

// REFMAC5=10
    {
        {
            1, "REFMAC5", "?", "?", "program ",
            "Murshudov, G.N.", "ccp4@dl.ac.uk",
            "http://www.ccp4.ac.uk/main.html",
            "refinement", "fortran",
            "Protein refinement by the Maximum-Likelihood Method, with TLS option"
        },
        {
            1, "Refinement of Macromolecular Structures by the Maximum-Likelihood Method",
            "1997", "53 ", "240 ", " 255",
            "ACTA CRYSTALLOGR.,SECT.D",
            " Acta Cryst. D53, 240-255"
        }, 3,
        {
            {1, 1, 3, "Murshudov, G.N."},
            {1, 1, 3, "Vagin, A.A."},
            {1, 1, 3, "Dodson, E.J."}
        }
    },

// tnt=11
    {
        {
            1, "TNT", "?", "?", "package",
            "Tronrud, D, E.", "?",
            "http://www.uoxray.uoregon.edu/tnt/welcome.html",
            "refinement", "?",
            "Structure refinement, optimizing a model to X-ray diffraction data"
        },
        {
            1, "The TNT Refinement Package",
            "1997", "277 ", "306 ", " 318",
            "Methods Enzymol ",
            " Methods Enzymol. 277, 306-318"
        }, 1,
        {
            {1, 1, 1, "Tronrud, D, E. "}
        }
    },

// Warp=12
    {
        {
            1, "ARP/wARP", "?", "?", "program",
            "Victor S. Lamzin", "?",
            "http://www.embl-hamburg.de/ARP/",
            "?", "?",
            "Automatic construction and refinement of macromolecular models"
        },
        {
            1, "Automated refinement for protein crystallography",
            "1997", "277 ", "269 ", "305 ",
            "Methods Enzymol. ",
            "Methods Enzymol.  277, 269-305 , by Carter, C. & Sweet, B. eds."
        }, 2,
        {
            {1, 1, 2, "Lamzin, V.S. "},
            {1, 1, 2, "Wilson, K.S. "}
        }
    },

// restrain=13
    {
        {
            1, "RESTRAIN", "?", "?", "program ",
            "Ian Tickle", "tickle@mail.cryst.bbk.ac.uk",
            "http://www.ccp4.ac.uk/main.html",
            "refinement", "fortran",
            "refinement program including restraints, rigid body refinement, NCS, TLS etc."
        },
        {
            1, "The CCP4 Suite: Programs for Protein Crystallography",
            "1994", "50 ", "760 ", "763 ",
            "ACTA CRYSTALLOGR.,SECT.D",
            "Acta Cryst. D50, 760-763 "
        }, 1,
        {
            {1, 1, 1, "? "}
        }
    },

// amore=14
    {
        {
            1, "AMORE", "?", "?", "program ",
            "Jorge Navaza", "ccp4@dl.ac.uk",
            "http://www.ccp4.ac.uk/main.html",
            "molecular replacement", "fortran",
            "state-of-the-art molecular replacement package"
        },
        {
            1, "AMoRe: an Automated Package for Molecular Replacement",
            "1994", "50 ", "157 ", " 163",
            "ACTA CRYSTALLOGR.,SECT.A",
            "Acta Cryst. A50, 157-163  "
        }, 1,
        {
            {1, 1, 1, "Navaza, J."}
        }
    },

// epmr=15
    {
        {
            1, "EPMR", "?", "?", "program",
            "Charles R", "crk@agouron.com",
            "http://www.msg.ucsf.edu/local/programs/epmr/epmr.html",
            "molecular replacement", "?",
            "Unix command line for molecular replacement"
        },
        {
            1, "Rapid automated molecular replacement by evolutionary search",
            "1999", "55 ", " 484", " 491",
            "ACTA CRYSTALLOGR.,SECT.D",
            "Acta Crystallographica, D55, 484-491 "
        }, 3,
        {
            {1, 1, 3, "Kissinger, C.R. "},
            {1, 1, 3, "Gehlhaar, D.K. "},
            {1, 1, 3, "Fogel, D. B. "}
        }
    },

// MOLREP=16
    {
        {
            1, "MOLREP", "?", "?", "program",
            "A. Vagin", "alexei@ysbl.york.ac.uk ",
            "http://www.ccp4.ac.uk/dist/html/molrep.html",
            "molecular replacement", "fortran",
            "automated program for molecular replacement"
        },
        {
            1, "MOLREP: an automated program for molecular replacement",
            "1997", "1022", "1025", "30",
            "J. Appl. Cryst.",
            "J. Appl. Cryst. (1997) 30, 1022-1025."
        }, 2,
        {
            {1, 1, 2, "Vagin, A. "},
            {1, 1, 2, "Teplyakov, A. "}
        }
    },
    
// HKL = 17
    {
        {
            1, "HKL", "?", "?", "package",
            "Zbyszek Otwinowski", " zbyszek@mix.swmed.edu ",
            "http://www.lnls.br/infra/linhasluz/denzo-hkl.htm",
            "data processing", "?",
            "scale and analyze monochromatic X-ray diffraction oscillation data"
        },
        {
            1, "Processing of X-ray Diffraction Data Collected in Oscillation Mode",
            "1997", "276 ", "307 ", "326 ",
            "Methods in Enzymology ",
            "? "
        }, 4,
        {
            {1, 1, 4, "Vagin, A. "},
            {1, 1, 4, "Teplyakov, A. "},
            {1, 1, 4, "Otwinowski, Z."},
            {1, 1, 4, "Minor, W."}
        }
    },

// scala=18
    {
        {
            1, "SCALA", "?", "?", "program",
            "Phil Evans", "pre@mrc-lmb.cam.ac.uk",
            "http://www.ccp4.ac.uk/dist/html/INDEX.html",
            "scale reflection data", "Fortran",
            "scale and merge multiple reflections into an average intensity"
        },
        {
            1, "The scala program",
            "1997", "33 ", "22 ", "24 ",
            "Joint CCP4 and ESF-EACBM Newsletter ",
            "? "
        }, 1,
        {
            {1, 1, 1, "Evans, P.R. "}
        }
    },

// D*trek = 19 
    {
        {
            1, "D*trek ", "?", "?", "package",
            "Pflugrath, J.W.", "jwp@RigakuMSC.com",
            "http://www.msc.com/protein/dtrek.html",
            "data processing", "?",
            "A Universal Data Processing Package for IP and CCD Detectors"
        },
        {
            1, "The finer things in X-ray diffraction data collection",
            "1999", "55 ", "1718 ", "1725 ",
            "ACTA CRYSTALLOGR.,SECT.D",
            "? "
        }, 1,
        {
            {1, 1, 1, "Pflugrath, J.W."}
        }
    },

// phases=20 
    {
        {
            1, "PHASES", "?", "?", "package",
            "W. Furey", "fureyw+@pitt.edu",
            "http://www.imsb.au.dk/~mok/phases/phases.html",
            "phasing", "Fortran",
            "Heavy atom location, phase calculation & phase refinement"
        },
        {
            1, "PHASES-95: A Program Package for the Processing and Analysis of Diffraction Data from Macromolecules ",
            "1997", "277 ", "590 ", "620 ",
            "Methods in Enzymology ",
            " MACROMOLECULAR CRYSTALLOGRAPHY, PART B, Volume 277, Chapter 31, eds. C. Carter & R. Sweet, Academic Press, Orlando, Fl. in press 1997"
        }, 2,
        {
            {1, 1, 2, "Furey, W"},
            {1, 1, 2, "Swaminathan, S."}
        }
    },

// SAINT=21 
    {
        {
            1, "SAINT", "?", "?", "package",
            "?", "?",
            "http://www.bruker-axs.de/index.html",
            "data processing", "?",
            "integrating frames, sorting refelection lists, scaling, filtering, sorting and merging of reflections"
        },
        {
            1, "?",
            "?", "? ", "? ", "? ",
            "? ",
            "? "
        }, 1,
        {
            {1, 1, 1, " ?"}
        }
    },

// 3DSCALE=22 
    {
        {
            1, "3DSCALE", "?", "?", "program",
            "Z. Fu", "fuzq@uga.edu",
            "?",
            "Data scaling", "?",
            "Experimental error corrections and scaling of X-ray data by using 3-dimensional error correction and scaling models"
        },
        {
            1, "Experimental Error Correction of Crystal Diffraction Data Using 3-dimentional Model with Free-R test",
            "2000", "? ", "? ", "? ",
            "ACA Annual Meeting ",
            "? "
        }, 1,
        {
            {1, 1, 1, " Fu et al."}
        }
    },

// PDB_EXTRACT=23 
    {
        {
            1, "pdb_extract", "?", "?", "package",
            "PDB", "sw-help@rcsb.rutgers.edu",
            "http://pdb.rutgers.edu/software/",
            "Data extraction", "C++",
            "Extract information from Log files generatd by X-ray crystallographic programs"
        },
        {
            1, "Automated data extraction and deposition",
            "2004", "? ", "? ", "? ",
            "ACTA CRYSTALLOGR.,SECT.D",
            "ACTA CRYSTALLOGR.,SECT.D"
        }, 5,
        {
            {1, 1, 5, "Yang, H."},
            {1, 1, 5, "Guranovic, V."},
            {1, 1, 5, "Feng, Z."},
            {1, 1, 5, "Berman, H."},
            {1, 1, 5, "Westbrook, J."}
        }
    },
    
// SCALEPACK = 24
    {
        {
            1, "SCALEPACK", "?", "?", "package",
            "Zbyszek Otwinowski", " zbyszek@mix.swmed.edu ",
            "http://www.lnls.br/infra/linhasluz/denzo-hkl.htm",
            "data processing", "?",
            "scale and analyze monochromatic X-ray diffraction oscillation data"
        },
        {
            1, "Processing of X-ray Diffraction Data Collected in Oscillation Mode",
            "1997", "276 ", "307 ", "326 ",
            "Methods in Enzymology ",
            "? "
        }, 4,
        {
            {1, 1, 4, "Vagin, A. "},
            {1, 1, 4, "Teplyakov, A. "},
            {1, 1, 4, "Otwinowski, Z."},
            {1, 1, 4, "Minor, W."}
        }
    },

// Denzo = 25
    {
        {
            1, "DENZO", "?", "?", "package",
            "Zbyszek Otwinowski", " zbyszek@mix.swmed.edu ",
            "http://www.lnls.br/infra/linhasluz/denzo-hkl.htm",
            "data processing", "?",
            "scale and analyze monochromatic X-ray diffraction oscillation data"
        },
        {
            1, "Processing of X-ray Diffraction Data Collected in Oscillation Mode",
            "1997", "276 ", "307 ", "326 ",
            "Methods in Enzymology ",
            "? "
        }, 4,
        {
            {1, 1, 4, "Vagin, A. "},
            {1, 1, 4, "Teplyakov, A. "},
            {1, 1, 4, "Otwinowski, Z."},
            {1, 1, 4, "Minor, W."}
        }
    },


// Phaser = 26
    {
        {
            1, "Phaser", "?", "?", "program",
            "R. J. Read", " cimr-phaser@lists.cam.ac.uk ",
            "http://www-structmed.cimr.cam.ac.uk/phaser/",
            "molecular replacement", "?",
            "a program for phasing macromolecular crystal structures with maximum likelihood methods"
        },
        {
            1, "Likelihood-enhanced fast rotation functions",
            "2004", "60 ", "432 ", "438 ",
            "ACTA CRYSTALLOGR.,SECT.D ",
            "? "
        }, 3,
        {
            {1, 1, 3, "Storoni, L.C. "},
            {1, 1, 3, "McCoy, A.J. "},
            {1, 1, 3, "Read, R.J. "}
           
        }
    },
    
// Mosflm = 27
    {
        {
            1, "Mosflm", "?", "?", "package",
            "A.G.W. Leslie", " andrew@mrc-lmb.cam.ac.uk ",
            "http://www.mrc-lmb.cam.ac.uk/harry/mosflm/",
            "data indexing and integration", "?",
            "Mosflm is a program for indexing and integrating single crystal diffraction data from area detectors."
        },
        {
            1, "?",
            "1998", "30 ", "1036 ", "1040 ",
            "J. Appl. Cryst. ",
            "? "
        }, 3,
        {
            {1, 1, 3, "? "},
            {1, 1, 3, "? "},
            {1, 1, 3, "? "}
           
        }
    }


// ?=28 add more 
};



