NCAR / ccpp-framework

Common Community Physics Package (CCPP)
http://www.dtcenter.org/community-code/common-community-physics-package-ccpp/
Other
26 stars 64 forks source link

capgen needs to be able handle blocked data (80 hours) #314

Open gold2718 opened 4 years ago

gold2718 commented 4 years ago

Many models (e.g., UFS, CAM6) have blocked data structures where each 'block' is a DDT that contains field arrays.

capgen needs to support this data model.

gold2718 commented 3 years ago

To handle module variables (i.e., suite variables), the _init routine must be passed the size of the horizontal extent of each block.

gold2718 commented 3 years ago

If a host model has ccpp_block_number (number of current block), ccpp_block_count (how many blocks are there in total), ccpp_block_sizes (array of length ccpp_block_count that contains the sizes of all blocks), then assume we are dealing with a blocked host model and create the infrastructure to handle blocked data.

gold2718 commented 3 years ago

Copied from #386:

capgen needs to be able to correctly create the host cap interfaces, depending on the phase: