Skip to content

Commit aa6de2b

Browse files
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

File tree

0 commit comments

Comments
 (0)