跳轉到內容

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檔案,其中包含預設值。

華夏公益教科書