Skip to content

capgen needs to handle blocked host-model data #386

Description

@gold2718

Some models (e.g., UFS) provide data in a 'blocked' format where segments of a task's field data are enclosed in a derived data type (DDT). The entirety of the task's data is incorporated in an array of these DDTs.

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

  • init, timestep_init, timestep_final, or final:
    • horizontal_dimension is the total number of columns on the task
    • On entry, create a flattened version of each field with horizontal_dimension columns.
    • On exit, copy the flattened data back to the DDT array for intent(inout) and intent(out) fields.
  • run:
    • For each thread, pass the field array from one element of the DDT array
    • horizontal_loop_begin is typically 1 and horizontal_loop_end is typically the number of field columns in that array element

Metadata

Metadata

Assignees

Labels

capgenbugs, requests, etc. that involve ccpp_capgencapgen-unificationIssues/PRs necessary for capgen/prebuild unificationenhancement

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions