Implementing OpenACC's Fortran module

James Norris jnorris@codesourcery.com
Mon Aug 18 12:23:00 GMT 2014


Hi Tobias,

Tobias Burnus wrote:
> Hi James,
>
> James Norris wrote:
>> Attached are my latest versions of the OpenACC header files. The testing I've
>> done with the headers are using a version of the fortran compiler with your
>> patches applied. So far, no issues with the patches!
> The patches look good to me, except that I think the TODOs can be removed as
> the items has been implemented.

Done!

>
> Additionally, I wonder whether one can get rid of the *_h functions and
> of making *_l PRIVATE. In particular, I am thinking of replacing in
> "module openacc":
>    function acc_get_num_devices (d)
> by
>    function acc_get_num_devices (d) &
>        bind(C, name="__openacc_MOD_acc_get_num_device")

That is possible, however, that will cause a number of implicit conversion
warnings to be issued at compile time. My intent was for the wrapper
functions to do the type conversions.
>
> And then using those functions in the module instead of the _h functions.
>

The *_h functions exist for the benefit of the entry points defined in
openacc_lib.h. My intent for openacc_lib.h was for it to be 'module-less'.
In other words, hide all the module-related functionality in openacc.f90.

Jim



More information about the Fortran mailing list