The user can input control data at run time using an options database.
The command
PetscOptionsGetInt(PETSC_NULL, "-n", &user.n, &flg);checks whether the user has provided a command line option to set the value of n, the number of variables. If so, the variable n is set accordingly; otherwise, n remains unchanged. A complete description of the options database may be found in the PETSc users manual.