ESCOMP / ESCOMP/CTSM

Remove global arrays in lnd_set_decomp_and_domain

Open
#3,515 0 comments 0 reactions 0 assignees View on GitHub
b4b performance
Dominant language
Fortran
Stars
352
Forks
361
Avg merge
2d 21h
Merged PRs (30d)
7

Description

There are 6 temporary global arrays in lnd_set_decomp_and_domain that are dimensioned by the global grid size

``` fortran
allocate(lndmask_glob(gsize)); lndmask_glob(:) = 0
allocate(itemp_glob(gsize))
allocate(lndmask_glob(gsize)); lndmask_glob(:) = 0
allocate(rtemp_glob(gsize))
allocate(lndlons_glob(gsize))
allocate(lndlats_glob(gsize))
```

They are all deallocated after initialization.

lndmask_glob is what's used to determine the decomposition, and would be hard to get rid of. Some of the others could likely be handled by having them handled after the decomposition is determined so they would be scalable.

Size for 6 integer arrays, of 4 bytes, for the 42 million points of the mpasa3p75 grid is on one node in GBytes is:
6x4*41943042*128/1024^3 = 120 GBytes

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.