diff --git a/src/common/cp_array_utils.F b/src/common/cp_array_utils.F index 4824d172ce..5ee64e8431 100644 --- a/src/common/cp_array_utils.F +++ b/src/common/cp_array_utils.F @@ -33,6 +33,9 @@ MODULE cp_array_utils PUBLIC :: cp_1d_${nametype}$_p_type, & cp_2d_${nametype}$_p_type, & cp_3d_${nametype}$_p_type, & + cp_1d_${nametype}$_cp_type, & + cp_2d_${nametype}$_cp_type, & + cp_3d_${nametype}$_cp_type, & cp_1d_${nametype}$_guarantee_size, & cp_1d_${nametype}$_write, & cp_2d_${nametype}$_write, & @@ -84,6 +87,36 @@ MODULE cp_array_utils ${type1}$, dimension(:, :, :), pointer :: array end type cp_3d_${nametype1}$_p_type +! ************************************************************************************************** +!> \brief represent a pointer to a contiguous 1d array +!> \par History +!> 02.2003 created [fawzi] +!> \author fawzi +! ************************************************************************************************** + type cp_1d_${nametype1}$_cp_type + ${type1}$, dimension(:), contiguous, pointer :: array + end type cp_1d_${nametype1}$_cp_type + +! ************************************************************************************************** +!> \brief represent a pointer to a contiguous 2d array +!> \par History +!> 02.2003 created [fawzi] +!> \author fawzi +! ************************************************************************************************** + type cp_2d_${nametype1}$_cp_type + ${type1}$, dimension(:, :), contiguous, pointer :: array + end type cp_2d_${nametype1}$_cp_type + +! ************************************************************************************************** +!> \brief represent a pointer to a contiguous 3d array +!> \par History +!> 02.2003 created [fawzi] +!> \author fawzi +! ************************************************************************************************** + type cp_3d_${nametype1}$_cp_type + ${type1}$, dimension(:, :, :), contiguous, pointer :: array + end type cp_3d_${nametype1}$_cp_type + #:endfor CONTAINS diff --git a/src/pw/cp_linked_list_pw.F b/src/pw/cp_linked_list_pw.F index da1a0ff281..0bac569caa 100644 --- a/src/pw/cp_linked_list_pw.F +++ b/src/pw/cp_linked_list_pw.F @@ -10,19 +10,19 @@ MODULE cp_linked_list_pw USE kinds, ONLY: dp USE pw_types, ONLY: pw_type, pw_p_type - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE realspace_grid_types, ONLY: realspace_grid_type, realspace_grid_p_type #include "../base/base_uses.f90" #:mute #:set nametype1 = ['3d_r', 'pw', 'rs'] - #:set type1 = ['REAL(kind=dp),dimension(:,:,:),pointer', 'type(pw_type),pointer', 'type(realspace_grid_type),pointer'] + #:set type1 = ['REAL(kind=dp),dimension(:,:,:),pointer,contiguous', 'type(pw_type),pointer', 'type(realspace_grid_type),pointer'] #:set type1in = type1 #:set type1out = type1 #:set eq = ['=>','=>','=>','=>'] #:set arrayeq = eq - #:set type1arrayEl = ['type(cp_3d_r_p_type)','type(pw_p_type)','type(realspace_grid_p_type)'] + #:set type1arrayEl = ['type(cp_3d_r_cp_type)','type(pw_p_type)','type(realspace_grid_p_type)'] #:set arrayEl = ['%array','%pw','%rs_grid'] diff --git a/src/pw/pw_pool_types.F b/src/pw/pw_pool_types.F index 1f04f2034f..eeb71c2af1 100644 --- a/src/pw/pw_pool_types.F +++ b/src/pw/pw_pool_types.F @@ -170,7 +170,8 @@ CONTAINS SUBROUTINE pw_pool_flush_cache(pool) TYPE(pw_pool_type), POINTER :: pool - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: array_att + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: array_att TYPE(cp_logger_type), POINTER :: logger TYPE(cp_sll_3d_r_type), POINTER :: array_iterator TYPE(cp_sll_pw_type), POINTER :: iterator @@ -306,7 +307,8 @@ CONTAINS CHARACTER(len=*), PARAMETER :: routineN = 'pw_pool_create_pw' INTEGER :: handle - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: cr3d_ptr + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: cr3d_ptr TYPE(cp_logger_type), POINTER :: logger TYPE(pw_type), POINTER :: el @@ -554,7 +556,8 @@ CONTAINS ! ************************************************************************************************** SUBROUTINE pw_pool_give_back_cr3d(pw_pool, cr3d, accept_non_compatible) TYPE(pw_pool_type), POINTER :: pw_pool - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: cr3d + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: cr3d LOGICAL, INTENT(in), OPTIONAL :: accept_non_compatible LOGICAL :: compatible, my_accept_non_compatible diff --git a/src/pw/pw_types.F b/src/pw/pw_types.F index 4f2620a90c..4079ca1f88 100644 --- a/src/pw/pw_types.F +++ b/src/pw/pw_types.F @@ -123,8 +123,8 @@ CONTAINS TYPE(pw_grid_type), INTENT(IN), POINTER :: pw_grid INTEGER, INTENT(in) :: use_data INTEGER, INTENT(in), OPTIONAL :: in_space - REAL(KIND=dp), DIMENSION(:, :, :), INTENT(IN), & - OPTIONAL, POINTER :: cr3d_ptr + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + INTENT(IN), OPTIONAL, POINTER :: cr3d_ptr CHARACTER(len=*), PARAMETER :: routineN = 'pw_create' diff --git a/src/qs_vxc_atom.F b/src/qs_vxc_atom.F index e2c4dd24d0..602aae2cd9 100644 --- a/src/qs_vxc_atom.F +++ b/src/qs_vxc_atom.F @@ -492,11 +492,12 @@ CONTAINS LOGICAL :: gradient_functional, lsd, lsd_singlets, & my_tddft, paw_atom, tau_f REAL(KIND=dp) :: density_cut, gradient_cut, rtot, tau_cut + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: vxc_h, vxc_s REAL(KIND=dp), DIMENSION(1, 1) :: rtau REAL(KIND=dp), DIMENSION(1, 1, 1, 1) :: rrho REAL(KIND=dp), DIMENSION(:, :), POINTER :: rho1_h, rho1_s, rho_h, rho_s, tau1_h, & tau1_s, tau_h, tau_s, weight - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: vxc_h, vxc_s REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: drho1_h, drho1_s, drho_h, drho_s, vxg_h, & vxg_s TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set diff --git a/src/xc/xc.F b/src/xc/xc.F index da4924025a..4baf0caa46 100644 --- a/src/xc/xc.F +++ b/src/xc/xc.F @@ -16,7 +16,7 @@ ! ************************************************************************************************** MODULE xc #:include 'xc.fypp' - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE cp_linked_list_xc_deriv, ONLY: cp_sll_xc_deriv_next, & cp_sll_xc_deriv_type USE cp_log_handling, ONLY: cp_get_default_logger, & @@ -1685,7 +1685,7 @@ CONTAINS tau_a, tau_b, tau, tau1, tau1a, tau1b, laplace, laplace1, & laplacea, laplaceb, laplace1a, laplace1b, & laplace2, laplace2a, laplace2b, deriv_data - TYPE(cp_3d_r_p_type), DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob + TYPE(cp_3d_r_cp_type), DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob TYPE(pw_type) :: v_drho, v_drhoa, v_drhob TYPE(pw_p_type), DIMENSION(:), POINTER :: rho_g, rho_r, vxc_rho, & tau_r, vxc_tau @@ -2363,7 +2363,7 @@ CONTAINS TYPE(xc_derivative_set_type), INTENT(IN) :: deriv_set INTEGER, DIMENSION(:), INTENT(in) :: description TYPE(pw_type), INTENT(IN) :: virial_pw - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(IN) :: drho, drho1 + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(IN) :: drho, drho1 REAL(KIND=dp), DIMENSION(3, 3), INTENT(INOUT) :: virial_xc REAL(KIND=dp), DIMENSION(:, :, :), INTENT(IN) :: norm_drho REAL(KIND=dp), INTENT(IN) :: gradient_cut @@ -2677,7 +2677,7 @@ CONTAINS norm_drhob, rho1, rho1a, rho1b, & tau1, tau1a, tau1b, laplace1, laplace1a, laplace1b, & rho, rhoa, rhob - TYPE(cp_3d_r_p_type), DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob + TYPE(cp_3d_r_cp_type), DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob TYPE(pw_p_type), DIMENSION(:), ALLOCATABLE :: v_drhoa, v_drhob, v_drho, v_laplace TYPE(pw_p_type), DIMENSION(:, :), ALLOCATABLE :: v_drho_r TYPE(pw_type) :: tmp_g, virial_pw, vxc_g @@ -3120,7 +3120,7 @@ CONTAINS ! ************************************************************************************************** SUBROUTINE virial_drho_drho1(virial_pw, drho, drho1, deriv_data, virial_xc) TYPE(pw_type), INTENT(IN) :: virial_pw - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(IN) :: drho, drho1 + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(IN) :: drho, drho1 REAL(KIND=dp), DIMENSION(:, :, :), INTENT(IN) :: deriv_data REAL(KIND=dp), DIMENSION(3, 3), INTENT(INOUT) :: virial_xc @@ -3151,7 +3151,7 @@ CONTAINS ! ************************************************************************************************** SUBROUTINE virial_drho_drho(virial_pw, drho, v_drho, virial_xc) TYPE(pw_type), INTENT(IN) :: virial_pw - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(IN) :: drho + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(IN) :: drho TYPE(pw_type), INTENT(IN) :: v_drho REAL(KIND=dp), DIMENSION(3, 3), INTENT(INOUT) :: virial_xc @@ -3307,7 +3307,7 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: drho_cutoff REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: norm_drho, norm_drhoa, norm_drhob - TYPE(cp_3d_r_p_type), DIMENSION(3) :: drho, drhoa, drhob + TYPE(cp_3d_r_cp_type), DIMENSION(3) :: drho, drhoa, drhob TYPE(cp_sll_xc_deriv_type), POINTER :: pos TYPE(xc_derivative_type), POINTER :: deriv_att @@ -3397,8 +3397,8 @@ CONTAINS !> \param drhob ... ! ************************************************************************************************** SUBROUTINE calc_drho_from_ab(drho, drhoa, drhob) - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(OUT) :: drho - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(IN) :: drhoa, drhob + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(OUT) :: drho + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(IN) :: drhoa, drhob CHARACTER(len=*), PARAMETER :: routineN = 'calc_drho_from_ab' @@ -3429,7 +3429,7 @@ CONTAINS SUBROUTINE prepare_dr1dr(dr1dr, drho, drho1) REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :, :), & INTENT(OUT) :: dr1dr - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(IN) :: drho, drho1 + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(IN) :: drho, drho1 CHARACTER(len=*), PARAMETER :: routineN = 'prepare_dr1dr' @@ -3466,7 +3466,7 @@ CONTAINS SUBROUTINE prepare_dr1dr_ab(dr1dr, drhoa, drhob, drho1a, drho1b, fac) REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :, :), & INTENT(OUT) :: dr1dr - TYPE(cp_3d_r_p_type), DIMENSION(3), INTENT(IN) :: drhoa, drhob, drho1a, drho1b + TYPE(cp_3d_r_cp_type), DIMENSION(3), INTENT(IN) :: drhoa, drhob, drho1a, drho1b REAL(KIND=dp), INTENT(IN) :: fac CHARACTER(len=*), PARAMETER :: routineN = 'prepare_dr1dr_ab' diff --git a/src/xc/xc_atom.F b/src/xc/xc_atom.F index 050be86193..356c1f1627 100644 --- a/src/xc/xc_atom.F +++ b/src/xc/xc_atom.F @@ -352,7 +352,7 @@ CONTAINS TYPE(section_vals_type), POINTER :: xc_section TYPE(xc_derivative_set_type), INTENT(INOUT) :: deriv_set REAL(dp), DIMENSION(:, :), POINTER :: w - REAL(dp), DIMENSION(:, :, :), POINTER :: vxc + REAL(dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: vxc REAL(dp), DIMENSION(:, :, :, :), POINTER :: vxg CHARACTER(LEN=*), PARAMETER :: routineN = 'xc_2nd_deriv_of_r' diff --git a/src/xc/xc_b97.F b/src/xc/xc_b97.F index 5d225affd4..ce842497e6 100644 --- a/src/xc/xc_b97.F +++ b/src/xc/xc_b97.F @@ -260,9 +260,9 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, scale_c, & scale_x - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & - e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, & - e_rho_rho_rho, norm_drho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, & + e_ndrho_ndrho, e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, & + e_rho, e_rho_rho, e_rho_rho_rho, norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -371,9 +371,9 @@ CONTAINS INTEGER :: handle, npoints, param INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, scale_c, scale_x - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndra, e_ndra_ndra, e_ndra_ndrb, & - e_ndra_ra, e_ndra_rb, e_ndrb, e_ndrb_ndrb, e_ndrb_ra, e_ndrb_rb, e_ra, e_ra_ra, e_ra_rb, & - e_rb, e_rb_rb, norm_drhoa, norm_drhob, rhoa, rhob + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndra, e_ndra_ndra, & + e_ndra_ndrb, e_ndra_ra, e_ndra_rb, e_ndrb, e_ndrb_ndrb, e_ndrb_ra, e_ndrb_rb, e_ra, & + e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drhoa, norm_drhob, rhoa, rhob TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_cs1.F b/src/xc/xc_cs1.F index 98e947bd13..8b28fc28f5 100644 --- a/src/xc/xc_cs1.F +++ b/src/xc/xc_cs1.F @@ -156,7 +156,7 @@ CONTAINS INTEGER :: handle, m, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & e_ndrho_ndrho_ndrho, e_rho, e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, & e_rho_rho_rho, grho, rho, rho13 TYPE(xc_derivative_type), POINTER :: deriv @@ -245,7 +245,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, & norm_drhoa, norm_drhob, rhoa, & rhoa_1_3, rhob, rhob_1_3 TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_derivative_set_types.F b/src/xc/xc_derivative_set_types.F index 01012b77d0..6edde1d452 100644 --- a/src/xc/xc_derivative_set_types.F +++ b/src/xc/xc_derivative_set_types.F @@ -77,7 +77,8 @@ CONTAINS INTEGER, ALLOCATABLE, DIMENSION(:) :: std_deriv_desc LOGICAL :: my_allocate_deriv - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: cr3d_ptr + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: cr3d_ptr TYPE(cp_sll_xc_deriv_type), POINTER :: pos TYPE(xc_derivative_type), POINTER :: deriv_att diff --git a/src/xc/xc_derivative_types.F b/src/xc/xc_derivative_types.F index 18a244d24f..363d2887f0 100644 --- a/src/xc/xc_derivative_types.F +++ b/src/xc/xc_derivative_types.F @@ -32,7 +32,7 @@ MODULE xc_derivative_types ! ************************************************************************************************** TYPE xc_derivative_type INTEGER, DIMENSION(:), POINTER :: split_desc => NULL() - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: deriv_data => NULL() + REAL(KIND=dp), DIMENSION(:, :, :), POINTER, CONTIGUOUS :: deriv_data => NULL() END TYPE xc_derivative_type ! ************************************************************************************************** @@ -59,7 +59,8 @@ CONTAINS TYPE(xc_derivative_type) :: derivative INTEGER, DIMENSION(:), INTENT(in) :: desc - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: cr3d_ptr + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: cr3d_ptr CALL create_split_desc(desc, derivative%split_desc) derivative%deriv_data => cr3d_ptr diff --git a/src/xc/xc_exchange_gga.F b/src/xc/xc_exchange_gga.F index 97b79d969c..e4a425ac23 100644 --- a/src/xc/xc_exchange_gga.F +++ b/src/xc/xc_exchange_gga.F @@ -15,7 +15,7 @@ ! ************************************************************************************************** MODULE xc_exchange_gga - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE cp_log_handling, ONLY: cp_to_string USE kinds, ONLY: dp USE mathconstants, ONLY: pi @@ -171,10 +171,10 @@ CONTAINS REAL(KIND=dp) :: drho_cutoff, rho_cutoff REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: s REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: fs - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & e_ndrho_ndrho_ndrho, e_rho, e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, & e_rho_rho_rho - TYPE(cp_3d_r_p_type), DIMENSION(2) :: norm_drho, rho, rho_1_3 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_hcth.F b/src/xc/xc_hcth.F index 065d33dd11..2c6f3b8d3a 100644 --- a/src/xc/xc_hcth.F +++ b/src/xc/xc_hcth.F @@ -123,7 +123,8 @@ CONTAINS INTEGER :: npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_rho, norm_drho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_ndrho, e_rho, norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv NULLIFY (e_0, e_ndrho, e_rho, norm_drho, rho) diff --git a/src/xc/xc_ke_gga.F b/src/xc/xc_ke_gga.F index 14d73f1bf8..65f9711350 100644 --- a/src/xc/xc_ke_gga.F +++ b/src/xc/xc_ke_gga.F @@ -15,7 +15,7 @@ ! ************************************************************************************************** MODULE xc_ke_gga - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE kinds, ONLY: dp USE mathconstants, ONLY: pi USE xc_derivative_desc, ONLY: deriv_norm_drho,& @@ -188,7 +188,7 @@ CONTAINS REAL(KIND=dp) :: drho_cutoff, rho_cutoff REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: s REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: fs - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & e_ndrho_ndrho_ndrho, e_rho, e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, & e_rho_rho_rho, grho, rho, rho13 TYPE(xc_derivative_type), POINTER :: deriv @@ -326,10 +326,10 @@ CONTAINS REAL(KIND=dp) :: rho_cutoff REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: s REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: fs - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & e_ndrho_ndrho_ndrho, e_rho, e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, & e_rho_rho_rho - TYPE(cp_3d_r_p_type), DIMENSION(2) :: norm_drho, rho, rho_1_3 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_libxc.F b/src/xc/xc_libxc.F index d991d5437b..d62478ad6a 100644 --- a/src/xc/xc_libxc.F +++ b/src/xc/xc_libxc.F @@ -555,11 +555,11 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo LOGICAL :: has_laplace, no_exc REAL(KIND=dp) :: epsilon_rho, epsilon_tau, func_scale - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rho, & - e_laplace_rho_laplace_rho, e_laplace_rho_tau, e_ndrho, & - e_ndrho_laplace_rho, e_ndrho_ndrho, e_ndrho_rho, e_ndrho_tau, e_rho, & - e_rho_laplace_rho, e_rho_rho, e_rho_rho_rho, e_rho_tau, e_tau, & - e_tau_tau, laplace_rho, norm_drho, rho, tau + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rho, & + e_laplace_rho_laplace_rho, e_laplace_rho_tau, e_ndrho, & + e_ndrho_laplace_rho, e_ndrho_ndrho, e_ndrho_rho, e_ndrho_tau, e_rho, & + e_rho_laplace_rho, e_rho_rho, e_rho_rho_rho, e_rho_tau, e_tau, & + e_tau_tau, laplace_rho, norm_drho, rho, tau TYPE(xc_derivative_type), POINTER :: deriv TYPE(xc_f03_func_t) :: xc_func TYPE(xc_f03_func_info_t) :: xc_info @@ -790,25 +790,25 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo LOGICAL :: has_laplace, no_exc REAL(KIND=dp) :: epsilon_rho, epsilon_tau, func_scale - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rhoa, & - e_laplace_rhoa_laplace_rhoa, e_laplace_rhoa_laplace_rhob, & - e_laplace_rhoa_tau_a, e_laplace_rhoa_tau_b, e_laplace_rhob, & - e_laplace_rhob_laplace_rhob, e_laplace_rhob_tau_a, & - e_laplace_rhob_tau_b, e_ndrho, e_ndrho_laplace_rhoa, & - e_ndrho_laplace_rhob, e_ndrho_ndrho, e_ndrho_ndrhoa, e_ndrho_ndrhob, & - e_ndrho_rhoa, e_ndrho_rhob, e_ndrho_tau_a, e_ndrho_tau_b, e_ndrhoa, & - e_ndrhoa_laplace_rhoa, e_ndrhoa_laplace_rhob, e_ndrhoa_ndrhoa, & - e_ndrhoa_ndrhob, e_ndrhoa_rhoa, e_ndrhoa_rhob, e_ndrhoa_tau_a, & - e_ndrhoa_tau_b, e_ndrhob - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_ndrhob_laplace_rhoa, & - e_ndrhob_laplace_rhob, e_ndrhob_ndrhob, e_ndrhob_rhoa, e_ndrhob_rhob, & - e_ndrhob_tau_a, e_ndrhob_tau_b, e_rhoa, e_rhoa_laplace_rhoa, & - e_rhoa_laplace_rhob, e_rhoa_rhoa, e_rhoa_rhoa_rhoa, e_rhoa_rhoa_rhob, & - e_rhoa_rhob, e_rhoa_rhob_rhob, e_rhoa_tau_a, e_rhoa_tau_b, e_rhob, & - e_rhob_laplace_rhoa, e_rhob_laplace_rhob, e_rhob_rhob, & - e_rhob_rhob_rhob, e_rhob_tau_a, e_rhob_tau_b, e_tau_a, e_tau_a_tau_a, & - e_tau_a_tau_b, e_tau_b, e_tau_b_tau_b, laplace_rhoa, laplace_rhob, & - norm_drho, norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rhoa, & + e_laplace_rhoa_laplace_rhoa, e_laplace_rhoa_laplace_rhob, & + e_laplace_rhoa_tau_a, e_laplace_rhoa_tau_b, e_laplace_rhob, & + e_laplace_rhob_laplace_rhob, e_laplace_rhob_tau_a, & + e_laplace_rhob_tau_b, e_ndrho, e_ndrho_laplace_rhoa, & + e_ndrho_laplace_rhob, e_ndrho_ndrho, e_ndrho_ndrhoa, e_ndrho_ndrhob, & + e_ndrho_rhoa, e_ndrho_rhob, e_ndrho_tau_a, e_ndrho_tau_b, e_ndrhoa, & + e_ndrhoa_laplace_rhoa, e_ndrhoa_laplace_rhob, e_ndrhoa_ndrhoa, & + e_ndrhoa_ndrhob, e_ndrhoa_rhoa, e_ndrhoa_rhob, e_ndrhoa_tau_a, & + e_ndrhoa_tau_b, e_ndrhob + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_ndrhob_laplace_rhoa, & + e_ndrhob_laplace_rhob, e_ndrhob_ndrhob, e_ndrhob_rhoa, e_ndrhob_rhob, & + e_ndrhob_tau_a, e_ndrhob_tau_b, e_rhoa, e_rhoa_laplace_rhoa, & + e_rhoa_laplace_rhob, e_rhoa_rhoa, e_rhoa_rhoa_rhoa, e_rhoa_rhoa_rhob, & + e_rhoa_rhob, e_rhoa_rhob_rhob, e_rhoa_tau_a, e_rhoa_tau_b, e_rhob, & + e_rhob_laplace_rhoa, e_rhob_laplace_rhob, e_rhob_rhob, & + e_rhob_rhob_rhob, e_rhob_tau_a, e_rhob_tau_b, e_tau_a, e_tau_a_tau_a, & + e_tau_a_tau_b, e_tau_b, e_tau_b_tau_b, laplace_rhoa, laplace_rhob, & + norm_drho, norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b TYPE(xc_derivative_type), POINTER :: deriv TYPE(xc_f03_func_t) :: xc_func TYPE(xc_f03_func_info_t) :: xc_info diff --git a/src/xc/xc_lyp.F b/src/xc/xc_lyp.F index f8e655ac5b..51a080326a 100644 --- a/src/xc/xc_lyp.F +++ b/src/xc/xc_lyp.F @@ -131,9 +131,9 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, sc - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & - e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, e_rho_rho_rho, & - norm_drho, rho, rho_1_3 + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, & + e_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, & + e_rho_rho_rho, norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -734,10 +734,10 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_drho, epsilon_rho, sc - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, e_ndr_ra, & - e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndra_rb, e_ndrb, e_ndrb_ndrb, e_ndrb_ra, & - e_ndrb_rb, e_ra, e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, norm_drhob, & - rhoa, rhob + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, & + e_ndr_ra, e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndra_rb, e_ndrb, e_ndrb_ndrb, & + e_ndrb_ra, e_ndrb_rb, e_ra, e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, & + norm_drhob, rhoa, rhob TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_lyp_adiabatic.F b/src/xc/xc_lyp_adiabatic.F index c589be105e..2b6b5d8d8d 100644 --- a/src/xc/xc_lyp_adiabatic.F +++ b/src/xc/xc_lyp_adiabatic.F @@ -132,7 +132,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, lambda - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_rho, norm_drho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_ndrho, e_rho, norm_drho, & rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv @@ -333,10 +334,10 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, lambda - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, e_ndr_ra, & - e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndra_rb, e_ndrb, e_ndrb_ndrb, e_ndrb_ra, & - e_ndrb_rb, e_ra, e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, norm_drhob, & - rhoa, rhob + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, & + e_ndr_ra, e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndra_rb, e_ndrb, e_ndrb_ndrb, & + e_ndrb_ra, e_ndrb_rb, e_ra, e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, & + norm_drhob, rhoa, rhob TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_optx.F b/src/xc/xc_optx.F index 2e825464fc..c301222406 100644 --- a/src/xc/xc_optx.F +++ b/src/xc/xc_optx.F @@ -12,7 +12,7 @@ !> \author Joost VandeVondele [03.2004] ! ************************************************************************************************** MODULE xc_optx - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE input_section_types, ONLY: section_vals_type,& section_vals_val_get USE kinds, ONLY: dp @@ -116,7 +116,8 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: a1, a2, epsilon_drho, epsilon_rho, gam, & sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_rho, norm_drho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_ndrho, e_rho, norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv NULLIFY (e_0, e_ndrho, e_rho, norm_drho, rho) @@ -174,8 +175,9 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: a1, a2, epsilon_drho, epsilon_rho, gam, & sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: e_0 - TYPE(cp_3d_r_p_type), DIMENSION(2) :: e_ndrho, e_rho, ndrho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: e_ndrho, e_rho, ndrho, rho TYPE(xc_derivative_type), POINTER :: deriv NULLIFY (e_0) diff --git a/src/xc/xc_pade.F b/src/xc/xc_pade.F index 15b43b5ec3..64ba8976de 100644 --- a/src/xc/xc_pade.F +++ b/src/xc/xc_pade.F @@ -145,7 +145,8 @@ CONTAINS INTEGER :: n LOGICAL :: calc(0:4) REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: rs - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_r, e_rr, e_rrr + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_r, e_rr, e_rrr TYPE(xc_derivative_type), POINTER :: deriv calc = .FALSE. @@ -207,10 +208,11 @@ CONTAINS INTEGER :: i, j, k LOGICAL :: calc(0:4) REAL(KIND=dp) :: rhoa, rhob, rs - REAL(KIND=dp), DIMENSION(4) :: fx - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ra, e_rara, e_rarara, e_rararb, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_ra, e_rara, e_rarara, e_rararb, & e_rarb, e_rarbrb, e_rb, e_rbrb, & e_rbrbrb + REAL(KIND=dp), DIMENSION(4) :: fx TYPE(xc_derivative_type), POINTER :: deriv calc = .FALSE. diff --git a/src/xc/xc_pbe.F b/src/xc/xc_pbe.F index 399d329673..10b8ecb77c 100644 --- a/src/xc/xc_pbe.F +++ b/src/xc/xc_pbe.F @@ -291,9 +291,9 @@ CONTAINS INTEGER :: handle, npoints, param INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, scale_ec, scale_ex - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & - e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, & - e_rho_rho_rho, norm_drho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, & + e_ndrho_ndrho, e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, & + e_rho, e_rho_rho, e_rho_rho_rho, norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -1337,9 +1337,9 @@ CONTAINS INTEGER :: handle, npoints, param INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, scale_ec, scale_ex - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, e_ndr_ra, & - e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndrb, e_ndrb_ndrb, e_ndrb_rb, e_ra, e_ra_ra, & - e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, norm_drhob, rhoa, rhob + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, & + e_ndr_ra, e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndrb, e_ndrb_ndrb, e_ndrb_rb, e_ra, & + e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, norm_drhob, rhoa, rhob TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_perdew86.F b/src/xc/xc_perdew86.F index 07774403ce..ed048d6ec4 100644 --- a/src/xc/xc_perdew86.F +++ b/src/xc/xc_perdew86.F @@ -129,7 +129,7 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: drho_cutoff, rho_cutoff REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: rs - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & e_ndrho_ndrho_ndrho, e_rho, e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, & e_rho_rho_rho, grho, rho TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_perdew_wang.F b/src/xc/xc_perdew_wang.F index 23dbe51c3d..b22248d9a4 100644 --- a/src/xc/xc_perdew_wang.F +++ b/src/xc/xc_perdew_wang.F @@ -150,8 +150,8 @@ CONTAINS INTEGER :: npoints, timer_handle INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: rho_cutoff - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_rho, e_rho_rho, & - e_rho_rho_rho, rho + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_rho, e_rho_rho, & + e_rho_rho_rho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, timer_handle) @@ -280,8 +280,8 @@ CONTAINS INTEGER :: npoints, timer_handle INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: rho_cutoff - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: a, b, dummy, e_0, ea, eaa, eaaa, eaab, & - eab, eabb, eb, ebb, ebbb + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: a, b, dummy, e_0, ea, eaa, eaaa, eaab, & + eab, eabb, eb, ebb, ebbb TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, timer_handle) diff --git a/src/xc/xc_perdew_zunger.F b/src/xc/xc_perdew_zunger.F index 766ed80031..877b9c8ebc 100644 --- a/src/xc/xc_perdew_zunger.F +++ b/src/xc/xc_perdew_zunger.F @@ -146,7 +146,8 @@ CONTAINS INTEGER :: npoints, timer_handle INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: rho_cutoff, sc - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_rho, e_rho_rho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_rho, e_rho_rho, & e_rho_rho_rho, rho TYPE(xc_derivative_type), POINTER :: deriv @@ -276,7 +277,8 @@ CONTAINS INTEGER :: npoints, timer_handle INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: rho_cutoff, sc - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: a, b, dummy, e_0, ea, eaa, eaaa, eaab, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: a, b, dummy, e_0, ea, eaa, eaaa, eaab, & eab, eabb, ebb, ebbb TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_rho_set_types.F b/src/xc/xc_rho_set_types.F index f5816287d5..896ed74153 100644 --- a/src/xc/xc_rho_set_types.F +++ b/src/xc/xc_rho_set_types.F @@ -12,7 +12,7 @@ !> \author fawzi ! ************************************************************************************************** MODULE xc_rho_set_types - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE kinds, ONLY: dp USE pw_grid_types, ONLY: pw_grid_type USE pw_methods, ONLY: pw_copy, & @@ -88,18 +88,18 @@ MODULE xc_rho_set_types REAL(kind=dp) :: rho_cutoff, drho_cutoff, tau_cutoff TYPE(xc_rho_cflags_type) :: owns, has ! for spin restricted systems - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rho - TYPE(cp_3d_r_p_type), DIMENSION(3) :: drho - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: norm_drho - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rho_1_3 - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: tau + REAL(KIND=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: rho + TYPE(cp_3d_r_cp_type), DIMENSION(3) :: drho + REAL(KIND=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: norm_drho + REAL(KIND=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: rho_1_3 + REAL(kind=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: tau ! for UNrestricted systems - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rhoa, rhob - TYPE(cp_3d_r_p_type), DIMENSION(3) :: drhoa, drhob - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: norm_drhoa, norm_drhob - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: rhoa_1_3, rhob_1_3 - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: tau_a, tau_b - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: laplace_rho, laplace_rhoa, laplace_rhob + REAL(KIND=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: rhoa, rhob + TYPE(cp_3d_r_cp_type), DIMENSION(3) :: drhoa, drhob + REAL(KIND=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: norm_drhoa, norm_drhob + REAL(kind=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: rhoa_1_3, rhob_1_3 + REAL(kind=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: tau_a, tau_b + REAL(kind=dp), DIMENSION(:, :, :), CONTIGUOUS, POINTER :: laplace_rho, laplace_rhoa, laplace_rhob END TYPE xc_rho_set_type CONTAINS @@ -278,13 +278,13 @@ CONTAINS LOGICAL, INTENT(in), OPTIONAL :: can_return_null REAL(KIND=dp), DIMENSION(:, :, :), OPTIONAL, & POINTER :: rho - TYPE(cp_3d_r_p_type), DIMENSION(3), OPTIONAL :: drho + TYPE(cp_3d_r_cp_type), DIMENSION(3), OPTIONAL :: drho REAL(KIND=dp), DIMENSION(:, :, :), OPTIONAL, & POINTER :: norm_drho, rhoa, rhob, norm_drhoa, & norm_drhob, rho_1_3, rhoa_1_3, & rhob_1_3, laplace_rho, laplace_rhoa, & laplace_rhob - TYPE(cp_3d_r_p_type), DIMENSION(3), OPTIONAL :: drhoa, drhob + TYPE(cp_3d_r_cp_type), DIMENSION(3), OPTIONAL :: drhoa, drhob REAL(kind=dp), INTENT(out), OPTIONAL :: rho_cutoff, drho_cutoff, tau_cutoff REAL(KIND=dp), DIMENSION(:, :, :), OPTIONAL, & POINTER :: tau, tau_a, tau_b @@ -460,7 +460,7 @@ CONTAINS SUBROUTINE xc_rho_set_recover_pw_low(rho_pw, rho, pw_grid, pw_pool, rhoa, rhob) TYPE(pw_type), POINTER :: rho_pw - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rho + REAL(KIND=dp), DIMENSION(:, :, :), POINTER, CONTIGUOUS :: rho TYPE(pw_grid_type), POINTER, INTENT(IN) :: pw_grid TYPE(pw_pool_type), POINTER, INTENT(IN) :: pw_pool REAL(KIND=dp), DIMENSION(:, :, :), POINTER, OPTIONAL :: rhoa, rhob diff --git a/src/xc/xc_tfw.F b/src/xc/xc_tfw.F index d3b5492209..ec9996cd0b 100644 --- a/src/xc/xc_tfw.F +++ b/src/xc/xc_tfw.F @@ -14,7 +14,7 @@ !> \author JGH (18.02.2002) ! ************************************************************************************************** MODULE xc_tfw - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE kinds, ONLY: dp USE xc_derivative_desc, ONLY: deriv_norm_drho,& deriv_norm_drhoa,& @@ -141,8 +141,9 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: s - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, e_rho, & - e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, e_rho_rho_rho, grho, r13, rho + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, & + e_rho, e_rho_ndrho, e_rho_ndrho_ndrho, e_rho_rho, e_rho_rho_ndrho, e_rho_rho_rho, grho, & + r13, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -253,11 +254,12 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: s - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_ndrho, e_ndrho_ndrho, e_rho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_ndrho, e_ndrho_ndrho, e_rho, & e_rho_ndrho, e_rho_ndrho_ndrho, & e_rho_rho, e_rho_rho_ndrho, & e_rho_rho_rho - TYPE(cp_3d_r_p_type), DIMENSION(2) :: norm_drho, rho, rho_1_3 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_thomas_fermi.F b/src/xc/xc_thomas_fermi.F index 47fa7970da..75e4562366 100644 --- a/src/xc/xc_thomas_fermi.F +++ b/src/xc/xc_thomas_fermi.F @@ -16,7 +16,7 @@ !> \author JGH (18.02.2002) ! ************************************************************************************************** MODULE xc_thomas_fermi - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE kinds, ONLY: dp USE xc_derivative_desc, ONLY: deriv_rho,& deriv_rhoa,& @@ -128,7 +128,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, & r13, rho TYPE(xc_derivative_type), POINTER :: deriv @@ -190,8 +191,9 @@ CONTAINS INTEGER :: handle, i, ispin, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho - TYPE(cp_3d_r_p_type), DIMENSION(2) :: rho, rho_1_3 + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_tpss.F b/src/xc/xc_tpss.F index a86b64a079..fad2a5cd39 100644 --- a/src/xc/xc_tpss.F +++ b/src/xc/xc_tpss.F @@ -117,7 +117,8 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, epsilon_tau, scale_ec, & scale_ex - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_rho, e_tau, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_ndrho, e_rho, e_tau, & norm_drho, rho, tau TYPE(cp_logger_type), POINTER :: logger TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_vwn.F b/src/xc/xc_vwn.F index 179fafaef5..73c97a7e64 100644 --- a/src/xc/xc_vwn.F +++ b/src/xc/xc_vwn.F @@ -175,7 +175,8 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho, sc REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: x - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, rho + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -531,7 +532,8 @@ CONTAINS INTEGER :: handle, npoints, TYPE INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho, sc - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_a, e_aa, e_aaa, e_aab, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_a, e_aa, e_aaa, e_aab, & e_ab, e_abb, e_b, e_bb, e_bbb, rhoa, & rhob TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_xalpha.F b/src/xc/xc_xalpha.F index 906030a719..4a5ec72d79 100644 --- a/src/xc/xc_xalpha.F +++ b/src/xc/xc_xalpha.F @@ -17,7 +17,7 @@ !> \author JGH (17.02.2002) ! ************************************************************************************************** MODULE xc_xalpha - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE input_section_types, ONLY: section_vals_type,& section_vals_val_get USE kinds, ONLY: dp @@ -160,7 +160,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho, sx - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, & + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, & r13, rho TYPE(xc_derivative_type), POINTER :: deriv @@ -230,8 +231,9 @@ CONTAINS INTEGER :: handle, i, ispin, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(KIND=dp) :: epsilon_rho, sx - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho - TYPE(cp_3d_r_p_type), DIMENSION(2) :: rho, rho_1_3 + REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_xbecke88.F b/src/xc/xc_xbecke88.F index f01aa53a5c..8bd2c3cabd 100644 --- a/src/xc/xc_xbecke88.F +++ b/src/xc/xc_xbecke88.F @@ -14,7 +14,7 @@ MODULE xc_xbecke88 USE bibliography, ONLY: Becke1988,& cite_reference - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE input_section_types, ONLY: section_vals_type,& section_vals_val_get USE kinds, ONLY: dp @@ -131,9 +131,9 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & - e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, & - e_rho_rho_rho, norm_drho, rho, rho_1_3 + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, & + e_ndrho_ndrho, e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, & + e_rho, e_rho_rho, e_rho_rho_rho, norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -644,8 +644,9 @@ CONTAINS INTEGER :: handle, i, ispin, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0 - TYPE(cp_3d_r_p_type), DIMENSION(2) :: e_ndrho, e_ndrho_ndrho, e_ndrho_ndrho_ndrho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: e_ndrho, e_ndrho_ndrho, e_ndrho_ndrho_ndrho, & e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, e_rho_rho_rho, & norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_xbecke88_long_range.F b/src/xc/xc_xbecke88_long_range.F index 4d89df2303..5ba5897123 100644 --- a/src/xc/xc_xbecke88_long_range.F +++ b/src/xc/xc_xbecke88_long_range.F @@ -14,7 +14,7 @@ MODULE xc_xbecke88_long_range USE bibliography, ONLY: Becke1988,& cite_reference - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE input_section_types, ONLY: section_vals_type,& section_vals_val_get USE kinds, ONLY: dp @@ -130,9 +130,9 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, omega, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & - e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, & - e_rho_rho_rho, norm_drho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, & + e_ndrho_ndrho, e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, & + e_rho, e_rho_rho, e_rho_rho_rho, norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -845,8 +845,9 @@ CONTAINS INTEGER :: handle, i, ispin, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, omega, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0 - TYPE(cp_3d_r_p_type), DIMENSION(2) :: e_ndrho, e_ndrho_ndrho, e_ndrho_ndrho_ndrho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: e_ndrho, e_ndrho_ndrho, e_ndrho_ndrho_ndrho, & e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, e_rho_rho_rho, & norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_xbecke88_lr_adiabatic.F b/src/xc/xc_xbecke88_lr_adiabatic.F index be89055fe3..98938ba9d1 100644 --- a/src/xc/xc_xbecke88_lr_adiabatic.F +++ b/src/xc/xc_xbecke88_lr_adiabatic.F @@ -20,7 +20,7 @@ MODULE xc_xbecke88_lr_adiabatic USE bibliography, ONLY: Becke1988,& cite_reference - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE input_section_types, ONLY: section_vals_type,& section_vals_val_get USE kinds, ONLY: dp @@ -137,9 +137,9 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, lambda, omega, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & - e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, & - e_rho_rho_rho, norm_drho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, & + e_ndrho_ndrho, e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, & + e_rho, e_rho_rho, e_rho_rho_rho, norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -2857,8 +2857,9 @@ CONTAINS INTEGER :: handle, i, ispin, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, lambda, omega, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0 - TYPE(cp_3d_r_p_type), DIMENSION(2) :: e_ndrho, e_ndrho_ndrho, e_ndrho_ndrho_ndrho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: e_ndrho, e_ndrho_ndrho, e_ndrho_ndrho_ndrho, & e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, e_rho, e_rho_rho, e_rho_rho_rho, & norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_xbecke_roussel.F b/src/xc/xc_xbecke_roussel.F index b573aa65f3..efa733f649 100644 --- a/src/xc/xc_xbecke_roussel.F +++ b/src/xc/xc_xbecke_roussel.F @@ -174,7 +174,8 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(dp) :: gamma, R, sx REAL(kind=dp) :: epsilon_rho - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rho, e_ndrho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_laplace_rho, e_ndrho, & e_rho, e_tau, laplace_rho, norm_drho, & rho, tau TYPE(xc_derivative_type), POINTER :: deriv @@ -370,9 +371,9 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(dp) :: gamma, R, sx REAL(kind=dp) :: epsilon_rho - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rhoa, e_laplace_rhob, & - e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, e_tau_a, e_tau_b, laplace_rhoa, laplace_rhob, & - norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rhoa, & + e_laplace_rhob, e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, e_tau_a, e_tau_b, laplace_rhoa, & + laplace_rhob, norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_xbeef.F b/src/xc/xc_xbeef.F index 9cdb3885c1..c5df647cb6 100644 --- a/src/xc/xc_xbeef.F +++ b/src/xc/xc_xbeef.F @@ -16,7 +16,7 @@ MODULE xc_xbeef USE bibliography, ONLY: Wellendorff2012,& cite_reference - USE cp_array_utils, ONLY: cp_3d_r_p_type + USE cp_array_utils, ONLY: cp_3d_r_cp_type USE input_section_types, ONLY: section_vals_type,& section_vals_val_get USE kinds, ONLY: dp @@ -144,7 +144,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_rho, norm_drho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_ndrho, e_rho, norm_drho, & rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv @@ -317,8 +318,9 @@ CONTAINS INTEGER :: handle, i, ispin, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0 - TYPE(cp_3d_r_p_type), DIMENSION(2) :: e_ndrho, e_rho, norm_drho, rho, rho_1_3 + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0 + TYPE(cp_3d_r_cp_type), DIMENSION(2) :: e_ndrho, e_rho, norm_drho, rho, rho_1_3 TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_xbr_pbe_lda_hole_t_c_lr.F b/src/xc/xc_xbr_pbe_lda_hole_t_c_lr.F index a7d5fbe3e4..d06468a59a 100644 --- a/src/xc/xc_xbr_pbe_lda_hole_t_c_lr.F +++ b/src/xc/xc_xbr_pbe_lda_hole_t_c_lr.F @@ -188,7 +188,8 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(dp) :: gamma, R, sx REAL(kind=dp) :: epsilon_rho - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rho, e_ndrho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_laplace_rho, e_ndrho, & e_rho, e_tau, laplace_rho, norm_drho, & rho, tau TYPE(xc_derivative_type), POINTER :: deriv @@ -444,9 +445,9 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(dp) :: gamma, R, sx REAL(kind=dp) :: epsilon_rho - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rhoa, e_laplace_rhob, & - e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, e_tau_a, e_tau_b, laplace_rhoa, laplace_rhob, & - norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_laplace_rhoa, & + e_laplace_rhob, e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, e_tau_a, e_tau_b, laplace_rhoa, & + laplace_rhob, norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_xlda_hole_t_c_lr.F b/src/xc/xc_xlda_hole_t_c_lr.F index 53b5cff263..281d097b7b 100644 --- a/src/xc/xc_xlda_hole_t_c_lr.F +++ b/src/xc/xc_xlda_hole_t_c_lr.F @@ -135,7 +135,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, R, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_rho, rho + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_rho, rho TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) @@ -315,7 +316,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, R, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_rhoa, e_rhob, rhoa, rhob + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_rhoa, e_rhob, rhoa, rhob TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle) diff --git a/src/xc/xc_xpbe_hole_t_c_lr.F b/src/xc/xc_xpbe_hole_t_c_lr.F index 58b5ffda69..9501311fee 100644 --- a/src/xc/xc_xpbe_hole_t_c_lr.F +++ b/src/xc/xc_xpbe_hole_t_c_lr.F @@ -161,7 +161,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, R, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_rho, norm_drho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_ndrho, e_rho, norm_drho, & rho TYPE(xc_derivative_type), POINTER :: deriv @@ -310,7 +311,8 @@ CONTAINS INTEGER :: handle, npoints INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_rho, R, sx - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrhoa, e_ndrhob, e_rhoa, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_ndrhoa, e_ndrhob, e_rhoa, & e_rhob, norm_drhoa, norm_drhob, rhoa, & rhob TYPE(xc_derivative_type), POINTER :: deriv diff --git a/src/xc/xc_xwpbe.F b/src/xc/xc_xwpbe.F index 038c854a95..9d7698e39d 100644 --- a/src/xc/xc_xwpbe.F +++ b/src/xc/xc_xwpbe.F @@ -159,7 +159,8 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, omega, & sx, sx0 - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), & + POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, & e_ndrho_rho, e_rho, e_rho_rho, & norm_drho, rho TYPE(xc_derivative_type), POINTER :: deriv @@ -5263,9 +5264,9 @@ CONTAINS INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, omega, & sx, sx0 - REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrhoa, e_ndrhoa_ndrhoa, & - e_ndrhoa_rhoa, e_ndrhob, e_ndrhob_ndrhob, e_ndrhob_rhob, e_rhoa, e_rhoa_rhoa, e_rhob, & - e_rhob_rhob, norm_drhoa, norm_drhob, rhoa, rhob + REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrhoa, & + e_ndrhoa_ndrhoa, e_ndrhoa_rhoa, e_ndrhob, e_ndrhob_ndrhob, e_ndrhob_rhob, e_rhoa, & + e_rhoa_rhoa, e_rhob, e_rhob_rhob, norm_drhoa, norm_drhob, rhoa, rhob TYPE(xc_derivative_type), POINTER :: deriv CALL timeset(routineN, handle)