跳转到内容

HydroGeoSphere/数组维度

来自维基教科书,开放世界中的开放书籍

在执行任务 1 时,grok 首先检查文件是否存在array_sizes.defaultprefix.grok文件所在的目录中。如果未找到,则会自动创建该文件并写入默认数组大小,这些大小随后将由预处理器使用。每个默认值都与一个描述符和一个默认值相关联。此处显示了该文件的一部分

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

...etc...

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


因此,例如,双重连续体材料区域的默认最大数量为 20。如果问题定义为数组超过默认最大值(例如,双重连续体材料区域的数量超过 20),则 grok 将停止执行并发出错误消息(到屏幕和prefixo.eco文件)的格式为

*********************************************
*** 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


根据错误消息中的描述符,您现在可以编辑array_sizes.default文件并增加相应的值。请注意,该文件按描述符的字母顺序排序。当您再次运行 grok 时,它将从该文件读取新的默认值。无需重新编译代码,因为它使用 Fortran 95 ALLOCATE 语句在运行时定义数组大小。

HydroGeoSphere 不使用文件array_sizes.default,而是使用由 grok 确定并传递的精确数组大小。

请记住,此过程与问题相关,每次您在不同的目录中运行 grok 时,都会生成一个新的array_sizes.default文件,其中包含默认值。

华夏公益教科书