public void addParameter (Parameter parameter) {
        /*
         *  Check to make sure that all of the dimensions that this parameter uses
         *  are in the dimension map.  Add them if they are not.
         */
        int num_dim = parameter.getNumDim();
        for (int i = 0; i < num_dim; i++) {
            if (!dimensions.containsKey(parameter.getDimension(i).getName())) {
                addDimension (parameter.getDimension(i));
            }
        }

        /*
         *  See if this parameter is already in the parameter set.  Remove it
         *  if it is.
         */

        Parameter param = (Parameter)(getParameter (parameter.getName()));
        if (param != null) {
            parameters.remove(parameter.getName());
        }

        parameters.put(parameter.getName(), parameter);

        Object[] o = parameters.values().toArray();
        parameterArray = new Parameter[parameters.size()];
        for (int i = 0; i < parameters.size(); i++) {
            parameterArray[i] = (Parameter)(o[i]);
        }
    }