! $Id$ ! ! MODULE_DOC: This module contains GPU related dummy types and functions. ! ! CPARAM logical, parameter :: lgpu = .false. ! !************************************************************************** ! module GPU ! use Cparam use General, only: keep_compiler_quiet, lpointer, keep_compiler_quiet_dble implicit none logical :: ltest_bcs,ltest_rhs integer :: it_test_rhs include 'gpu.h' contains !*********************************************************************** subroutine initialize_GPU(f) ! real, dimension(:,:,:,:), intent(IN) :: f call keep_compiler_quiet(f) endsubroutine initialize_GPU !************************************************************************** subroutine read_gpu_run_pars(iostat) ! integer, intent(out) :: iostat ! iostat = 0 ! endsubroutine read_gpu_run_pars !*********************************************************************** subroutine write_gpu_run_pars(unit) ! integer, intent(in) :: unit ! call keep_compiler_quiet(unit) ! endsubroutine write_gpu_run_pars !*********************************************************************** subroutine register_GPU endsubroutine register_GPU !************************************************************************** subroutine finalize_GPU endsubroutine finalize_GPU !************************************************************************** subroutine get_farray_ptr_gpu endsubroutine get_farray_ptr_gpu !************************************************************************** subroutine rhs_GPU(f,itsub) ! real, dimension (:,:,:,:) :: f integer :: itsub logical :: early_finalize ! call keep_compiler_quiet(f) call keep_compiler_quiet(itsub) ! endsubroutine rhs_GPU !************************************************************************** subroutine before_boundary_gpu(f,lrmv,itsub,t) ! real, dimension (:,:,:,:) :: f integer :: itsub logical :: early_finalize logical :: lrmv real(KIND=rkind8), intent(IN) :: t ! call keep_compiler_quiet(f) call keep_compiler_quiet(lrmv) call keep_compiler_quiet(itsub) call keep_compiler_quiet_dble(t) ! endsubroutine before_boundary_gpu !************************************************************************** subroutine update_after_substep_gpu endsubroutine update_after_substep_gpu !************************************************************************** function get_ptr_GPU(ind1,ind2,lout) result(pFarr) integer :: ind1 integer, optional :: ind2 logical, optional :: lout real, dimension(:,:,:,:), pointer :: pFarr call keep_compiler_quiet(ind1,ind2) call keep_compiler_quiet(lout) call keep_compiler_quiet(pFarr) endfunction get_ptr_GPU !************************************************************************** function get_ptr_GPU_training(ind1,ind2,lout) result(pFarr) integer :: ind1 integer, optional :: ind2 logical, optional :: lout real, dimension(:,:,:,:,:), pointer :: pFarr call keep_compiler_quiet(ind1,ind2) call keep_compiler_quiet(lout) call keep_compiler_quiet(pFarr) endfunction get_ptr_GPU_training !************************************************************************** subroutine copy_farray_from_GPU(f,nowait_) real, dimension (:,:,:,:), intent(OUT) :: f logical, optional :: nowait_ call keep_compiler_quiet(f) endsubroutine copy_farray_from_GPU !************************************************************************** subroutine load_farray_to_GPU(f) real, dimension (:,:,:,:), intent(OUT) :: f call keep_compiler_quiet(f) endsubroutine load_farray_to_GPU !************************************************************************** subroutine reload_GPU_config endsubroutine reload_GPU_config !************************************************************************** subroutine update_on_gpu(index,varname,value) integer :: index character(LEN=*), optional :: varname real, optional :: value call keep_compiler_quiet(index) if (present(varname)) call keep_compiler_quiet(varname) if (present(value)) call keep_compiler_quiet(value) endsubroutine update_on_gpu !************************************************************************** subroutine gpu_set_dt() endsubroutine gpu_set_dt !************************************************************************** subroutine infer_gpu(flag) integer :: flag call keep_compiler_quiet(flag) endsubroutine infer_gpu !************************************************************************** subroutine train_gpu(f, itsub, t) real :: f real :: itsub real(KIND=rkind8), intent(IN) :: t call keep_compiler_quiet(f) call keep_compiler_quiet(itsub) call keep_compiler_quiet_dble(t) endsubroutine train_gpu !************************************************************************** subroutine radtransfer_gpu endsubroutine !************************************************************************** subroutine get_gpu_reduced_vars(dst) real, dimension(:) :: dst call keep_compiler_quiet(dst) endsubroutine get_gpu_reduced_vars !************************************************************************** subroutine test_gpu_bcs endsubroutine test_gpu_bcs !************************************************************************** subroutine split_update_gpu(f) real, dimension(:,:,:,:) :: f call keep_compiler_quiet(f) endsubroutine split_update_gpu !************************************************************************** subroutine pushpars2c(p_par) integer, parameter :: n_pars=1 integer(KIND=ikind8), dimension(n_pars) :: p_par call keep_compiler_quiet(p_par) endsubroutine pushpars2c !************************************************************************** endmodule GPU