ROUTINE
-------

INT_ ug_set_prog_param (char **prog_argv,
                        int prog_argc,
                        INT_ Check_Flag,
                        INT_ Ignore_Error_Flag,
                        INT_ Message_Flag,
                        UG_Param_Struct **Param_Struct_Ptr)

DESCRIPTION
-----------

Malloc and initialize program related parameter structure arrays.

INPUT ARGUMENTS
---------------

prog_argv                : Pointer to argument vector.
prog_argc                : Argument count.
Check_Flag               : Parameter check flag.
                           If Check_Flag = 0 then parameters are not checked or
                           reset if they exceed the maximum or minimum allowable
                           values.
Ignore_Error_Flag        : Ignore error flag.
                           If Ignore_Error_Flag = 0 then errors are ignored.
Message_Flag             : Message flag.
                           If Message_Flag >= 1 then progress information is
                           written to standard output.
Param_Struct_Ptr         : Parameter structure.

RETURN VALUE
---------------

0                        : Then no errors occurred.
>0                       : Errors occurred.
                           The return value will be between 400 and 499 or
                           the return value will be between 100400 and 100499

OUTPUT ARGUMENTS
---------------

Param_Struct_Ptr         : Parameter structure.
--------------------------------------------------------------------------------

ROUTINE
-------

INT_ ug_check_prog_param_functions (void)

DESCRIPTION
-----------

Check if program parameter functions have been set by calling
ug_set_prog_param_functions.

RETURN VALUE
---------------

0                        : Then program parameter functions have not been set.
1                        : Then program parameter functions have been set.
--------------------------------------------------------------------------------

ROUTINE
-------

void ug_set_prog_param_n_dim (INT_ n_dim)

DESCRIPTION
-----------

Set grid generation dimension flag.

INPUT ARGUMENTS
---------------

NDim                              : Grid generation dimension flag.
                                    If n_dim = 2 then grid generation is 2D planar.
                                    If n_dim = 3 then grid generation is 3D volume.
                                    If n_dim = 4 then grid generation is 3D surface.
--------------------------------------------------------------------------------

ROUTINE
-------

void ug_set_prog_param_function1 (INT_ (*initialize_prog_param_function) (INT_ NDim, UG_Param_Struct *Param_Struct_Ptr))

DESCRIPTION
-----------

Register type 1 (n_dim dependent) program parameter function (limit 50 max).

INPUT ARGUMENTS
---------------

initialize_prog_param_function : Type 1 (n_dim dependent) function name.
--------------------------------------------------------------------------------

ROUTINE
-------

void ug_set_prog_param_function2 (INT_ (*initialize_prog_param_function) (UG_Param_Struct *Param_Struct_Ptr))

DESCRIPTION
-----------

Register type 2 program parameter function (limit 50 max).

INPUT ARGUMENTS
---------------

initialize_prog_param_function : Type 2 function name.
