Commit aa6de2b
committed
Enable GPU execution of loops in atm_srk3 involving module level variables
This commit ports the loops in the mpas_atm_time_integration and mpas_atm_core
modules, which initialize the garbage cells of module level variables belonging
to the mpas_atm_time_integration module, to OpenACC in preparation for the
consolidating all data transfers between host and device to before and after
each dynamics call.
In order to do this, we also declare the allocatable module level variables in
this scope using the OpenACC declare create statement, which instructs the
nvhpc compiler to automatically create and delete the variable whenever it
encounters an allocate or deallocate statement, respectively. This commit also
removes these variables from manual data movement statements as required.
This commit also introduces integer loop bounds, so as to dereference scalar
integer pointers which the OpenACC parallel regions do not correctly copy to
device memory.1 parent 3fe7ae1 commit aa6de2b
2 files changed
Lines changed: 130 additions & 75 deletions
0 commit comments