I have a Fortran application and C-Cuda Kernels. I need to use constant memory many variables. The manual states that Constant memory variables have the lifetime of an application. Presumably “lifetime” of an application means between - cudaInit and cudaExit is called. However, constant memory variables have file scope. Effectively in a fortran code which calls C-Cuda Kernels, this means that constant memory variables have to be initialized for every call of the kernel. This is a significant penalty for me - 10-15% of the wall-clock time is spent doing this. Is there a way to initialize constant memory variables only once in Fortran Code which calls C-Cuda code?