ecmwf-ifs / ifs-arpege-coding-standards

Official coding standard for IFS / Arpège
Apache License 2.0
3 stars 4 forks source link

Classification of subroutines to make rules more specific #5

Open mlange05 opened 1 year ago

mlange05 commented 1 year ago

One of the common themes with several of the rules added for GPU-adaptation and source-to-source tool compliance is that they only pertain to subroutines that process NPROMA blocks, while others are targeted at routines that spawn parallel sections. This is closely aligned with the previous idea of "single column" format rules.

I propose to extend this idea to define clearly three initial classes of subroutines, using similar nomenclature used in the recent Arpege porting report:

Once we pick the initial three classifications, I propose to re-classify some of the L-rules into P|V|C rules, or other abbreviations as appropriate.

In the future we might extend this with rules for other classifications (eg. "setup" or "sequential").

mlange05 commented 1 year ago

My personal preference for nomenclature would be PARALLEL | VECTOR | COMM, where "parallel" and "vector" are aligned with the Loki concept of "driver" and "kernel" respectively.