HydroGeoSphere/Array Dimensioning

From Wikibooks, open books for an open world
Jump to navigation Jump to search

When performing Task 1, grok first checks for the existence of a file array_sizes.default in the directory where the prefix.grok file is located. If it is not found, the file is automatically created and default array sizes are written which are then used by the preprocessor. Associated with each default are a descriptor and a default value. A portion of the file is shown here:

dual: material zones
        20
dual flow bc: flux nodes
     10000

...etc...

tiles: flux function panels
        20
wells: injection concentration function panels
       100
end


So, for example, the default maximum number of dual continuum material zones is 20. If the problem is defined such that an array exceeds the default maximum (e.g. the number of dual continuum material zones exceeds 20) then grok will halt execution and issue an error message (to the screen and the prefixo.eco file) of the form:

*********************************************
*** DIMENSIONING ERROR, HALTING EXECUTION ***
*********************************************
Pre-processor request exceeds default array size
dual: material zones
Default value: 20
Increase the default value in file ARRAY_SIZES.DEFAULT


Given the descriptor in the error message, you can now edit the array_sizes.default file and increase the appropriate value. Note that the file is sorted alphabetically by descriptor. When you run grok again, it will read the new default value from the file. Re-compilation of the code is not necessary, since it uses Fortran 95 ALLOCATE statements to define array sizes at run-time.

HydroGeoSphere does not utilize the file array_sizes.default, but instead uses exact array sizes determined and passed by grok.

Remember, this process is problem-dependent, and each time you run grok in a different directory, a fresh array_sizes.default file will be generated with default values.