697 first_c, last_c, mat_ab, &
698 basis_type_a, basis_type_b, basis_type_c, &
699 sab_nl, eri_method, &
700 pabc, force_a, force_b, force_c, &
701 mat_dabc, mat_adbc, mat_abdc)
703 TYPE(libint_potential_type),
INTENT(IN) :: potential_parameter
706 INTEGER,
INTENT(IN) :: first_c, last_c
708 INTENT(INOUT) :: mat_ab
709 CHARACTER(LEN=*),
INTENT(IN) :: basis_type_a, basis_type_b, basis_type_c
712 INTEGER,
INTENT(IN),
OPTIONAL :: eri_method
714 INTENT(INOUT),
OPTIONAL :: pabc
716 DIMENSION(:),
INTENT(OUT),
OPTIONAL :: force_a, force_b, force_c
718 DIMENSION(3, last_c - first_c + 1),
INTENT(INOUT), &
719 OPTIONAL :: mat_dabc, mat_adbc, mat_abdc
721 CHARACTER(LEN=*),
PARAMETER :: routinen =
'mp2_eri_3c_integrate'
723 INTEGER :: atom_a, atom_b, atom_c, atom_end, atom_start, first_set, gg_count, gr_count, &
724 handle, i_xyz, iatom, ic, icol, ikind, inode, irow, iset, jatom, jkind, jset, katom, &
725 kkind, kset, kset_end, kset_start, last_jatom, last_set, max_am_a, max_am_b, max_am_c, &
726 mepos, my_eri_method, na, natom, &
727 nb, nc, nkind, nseta, nsetb, nsetc, nthread, offset_a_end, offset_a_start, offset_b_end, &
728 offset_b_start, offset_c_end, offset_c_start, rr_count, set_end, set_offset_end, &
729 set_offset_start, set_start, sgfa, sgfb, sgfc
730 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: atom_of_kind, kind_of, natom_of_kind
731 INTEGER,
ALLOCATABLE,
DIMENSION(:, :) :: eri_offsets
732 INTEGER,
DIMENSION(:),
POINTER :: la_max, la_min, lb_max, lb_min, lc_max, &
733 lc_min, npgfa, npgfb, npgfc, nsgfa, &
735 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb, first_sgfc
736 LOGICAL :: calculate_forces, do_symmetric, found, to_be_asserted
738 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: habc, pabc_block
739 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :, :) :: habdc, hadbc, hdabc
740 REAL(kind=
dp),
DIMENSION(3) :: ra, rab, rb, rc
741 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
742 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: munu_block, pab_block, rpgfa, rpgfb, rpgfc, sphi_a, &
743 sphi_b, sphi_c, zeta, zetb, zetc
750 DIMENSION(:),
POINTER :: nl_iterator
752 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
754 CALL timeset(routinen, handle)
756 calculate_forces =
PRESENT(force_a) .OR.
PRESENT(force_b) .OR.
PRESENT(force_c) .OR. &
757 PRESENT(mat_dabc) .OR.
PRESENT(mat_adbc) .OR.
PRESENT(mat_abdc)
760 IF (
PRESENT(eri_method)) my_eri_method = eri_method
762 IF (
PRESENT(force_a) .OR.
PRESENT(force_b) .OR.
PRESENT(force_c))
THEN
763 cpassert(
PRESENT(pabc))
766 gg_count = 0; gr_count = 0; rr_count = 0
771 CALL get_eri_offsets(qs_env, basis_type_c, eri_offsets)
773 atom_start = eri_offsets(first_c, 1)
774 set_start = eri_offsets(first_c, 2)
775 set_offset_start = eri_offsets(first_c, 3)
777 atom_end = eri_offsets(last_c, 1)
778 set_end = eri_offsets(last_c, 2)
779 set_offset_end = eri_offsets(last_c, 3)
783 atomic_kind_set=atomic_kind_set, &
785 qs_kind_set=qs_kind_set, &
786 particle_set=particle_set, &
790 CALL get_atomic_kind_set(atomic_kind_set, atom_of_kind=atom_of_kind, kind_of=kind_of, natom_of_kind=natom_of_kind)
796 nc = last_c - first_c + 1
799 cpassert(
SIZE(sab_nl) > 0)
802 IF (do_symmetric)
THEN
803 cpassert(basis_type_a == basis_type_b)
806 ALLOCATE (basis_set_list_a(nkind), basis_set_list_b(nkind))
811 CALL get_qs_kind_set(qs_kind_set=qs_kind_set, maxlgto=max_am_a, basis_type=basis_type_a)
812 CALL get_qs_kind_set(qs_kind_set=qs_kind_set, maxlgto=max_am_b, basis_type=basis_type_b)
813 CALL get_qs_kind_set(qs_kind_set=qs_kind_set, maxlgto=max_am_c, basis_type=basis_type_c)
822 CALL get_iterator_info(nl_iterator, mepos=mepos, ikind=ikind, jkind=jkind, inode=inode, &
823 iatom=iatom, jatom=jatom, r=rab)
826 IF (inode == 1) last_jatom = 0
828 IF (jatom /= last_jatom)
THEN
834 basis_set_a => basis_set_list_a(ikind)%gto_basis_set
837 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
838 IF (sum(basis_set_a%nsgf_set) <= 0) cycle
839 basis_set_b => basis_set_list_b(jkind)%gto_basis_set
840 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
841 IF (sum(basis_set_b%nsgf_set) <= 0) cycle
842 atom_a = atom_of_kind(iatom)
843 atom_b = atom_of_kind(jatom)
845 first_sgfa => basis_set_a%first_sgf
846 la_max => basis_set_a%lmax
847 la_min => basis_set_a%lmin
848 npgfa => basis_set_a%npgf
849 nseta = basis_set_a%nset
850 nsgfa => basis_set_a%nsgf_set
851 rpgfa => basis_set_a%pgf_radius
852 set_radius_a => basis_set_a%set_radius
853 sphi_a => basis_set_a%sphi
854 zeta => basis_set_a%zet
857 ra(:) =
pbc(particle_set(iatom)%r, cell)
860 first_sgfb => basis_set_b%first_sgf
861 lb_max => basis_set_b%lmax
862 lb_min => basis_set_b%lmin
863 npgfb => basis_set_b%npgf
864 nsetb = basis_set_b%nset
865 nsgfb => basis_set_b%nsgf_set
866 rpgfb => basis_set_b%pgf_radius
867 set_radius_b => basis_set_b%set_radius
868 sphi_b => basis_set_b%sphi
869 zetb => basis_set_b%zet
872 rb(:) =
pbc(particle_set(jatom)%r, cell)
874 IF (do_symmetric)
THEN
875 IF (iatom <= jatom)
THEN
887 ALLOCATE (habc(na, nb, nc))
888 habc(:, :, :) = 0.0_dp
889 IF (
PRESENT(mat_dabc))
THEN
890 ALLOCATE (hdabc(3, na, nb, nc))
891 hdabc(:, :, :, :) = 0.0_dp
893 IF (
PRESENT(mat_adbc))
THEN
894 ALLOCATE (hadbc(3, na, nb, nc))
895 hadbc(:, :, :, :) = 0.0_dp
897 IF (
PRESENT(mat_abdc))
THEN
898 ALLOCATE (habdc(3, na, nb, nc))
899 habdc(:, :, :, :) = 0.0_dp
902 IF (calculate_forces .AND.
PRESENT(pabc))
THEN
903 ALLOCATE (pabc_block(na, nb, nc))
907 row=irow, col=icol, block=pab_block, found=found)
909 IF (irow == iatom)
THEN
910 to_be_asserted =
SIZE(pab_block, 1) ==
SIZE(pabc_block, 1) .AND.
SIZE(pab_block, 2) ==
SIZE(pabc_block, 2)
911 cpassert(to_be_asserted)
912 pabc_block(:, :, ic) = pab_block(:, :)
914 to_be_asserted =
SIZE(pab_block, 2) ==
SIZE(pabc_block, 1) .AND.
SIZE(pab_block, 1) ==
SIZE(pabc_block, 2)
915 cpassert(to_be_asserted)
916 pabc_block(:, :, ic) = transpose(pab_block(:, :))
921 rab(:) =
pbc(rab, cell)
922 dab = sqrt(rab(1)**2 + rab(2)**2 + rab(3)**2)
926 offset_a_start = offset_a_end
927 offset_a_end = offset_a_end + nsgfa(iset)
928 sgfa = first_sgfa(1, iset)
932 offset_b_start = offset_b_end
933 offset_b_end = offset_b_end + nsgfb(jset)
935 sgfb = first_sgfb(1, jset)
938 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
941 DO katom = atom_start, atom_end
943 atom_c = atom_of_kind(katom)
945 kkind = kind_of(katom)
946 CALL get_qs_kind(qs_kind=qs_kind_set(kkind), basis_set=basis_set_c, basis_type=basis_type_c)
947 first_sgfc => basis_set_c%first_sgf
948 lc_max => basis_set_c%lmax
949 lc_min => basis_set_c%lmin
950 nsetc = basis_set_c%nset
951 nsgfc => basis_set_c%nsgf_set
952 rpgfc => basis_set_c%pgf_radius
953 sphi_c => basis_set_c%sphi
954 zetc => basis_set_c%zet
955 npgfc => basis_set_c%npgf
957 rc(:) =
pbc(particle_set(katom)%r, cell)
959 kset_start = 1; kset_end = nsetc
960 IF (katom == atom_start) kset_start = set_start
961 IF (katom == atom_end) kset_end = set_end
963 DO kset = kset_start, kset_end
964 first_set = 1; last_set = nsgfc(kset)
965 IF (kset == kset_start .AND. katom == atom_start) first_set = set_offset_start
966 IF (kset == kset_end .AND. katom == atom_end) last_set = set_offset_end
968 offset_c_start = offset_c_end
969 offset_c_end = offset_c_end + last_set + 1 - first_set
970 sgfc = first_sgfc(1, kset)
972 IF (.NOT.
PRESENT(force_a) .AND. &
973 .NOT.
PRESENT(force_b) .AND. &
974 .NOT.
PRESENT(force_c) .AND. &
975 .NOT.
PRESENT(pabc) .AND. &
976 .NOT.
PRESENT(mat_dabc) .AND. &
977 .NOT.
PRESENT(mat_adbc) .AND. &
978 .NOT.
PRESENT(mat_abdc))
THEN
979 CALL integrate_set_3c( &
980 param%par, potential_parameter, &
981 la_min(iset), la_max(iset), &
982 lb_min(jset), lb_max(jset), &
983 lc_min(kset), lc_max(kset), &
984 npgfa(iset), npgfb(jset), npgfc(kset), &
985 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
986 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
989 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
990 offset_a_start, offset_b_start, offset_c_start, &
991 0, 0, first_set - 1, &
992 sphi_a, sphi_b, sphi_c, &
994 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
996 coulomb_context=integral_context, &
1001 do_symmetric=do_symmetric, &
1002 on_diagonal=iatom == jatom, &
1006 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1008 IF (.NOT.
PRESENT(force_a) .AND. &
1009 .NOT.
PRESENT(force_b) .AND. &
1010 .NOT.
PRESENT(force_c) .AND. &
1011 .NOT.
PRESENT(pabc) .AND. &
1012 .NOT.
PRESENT(mat_dabc) .AND. &
1013 .NOT.
PRESENT(mat_adbc) .AND. &
1014 PRESENT(mat_abdc))
THEN
1015 CALL integrate_set_3c( &
1016 param%par, potential_parameter, &
1017 la_min(iset), la_max(iset), &
1018 lb_min(jset), lb_max(jset), &
1019 lc_min(kset), lc_max(kset), &
1020 npgfa(iset), npgfb(jset), npgfc(kset), &
1021 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1022 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1025 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1026 offset_a_start, offset_b_start, offset_c_start, &
1027 0, 0, first_set - 1, &
1028 sphi_a, sphi_b, sphi_c, &
1030 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1032 coulomb_context=integral_context, &
1037 do_symmetric=do_symmetric, &
1038 on_diagonal=iatom == jatom, &
1042 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1044 IF (.NOT.
PRESENT(force_a) .AND. &
1045 .NOT.
PRESENT(force_b) .AND. &
1046 .NOT.
PRESENT(force_c) .AND. &
1047 .NOT.
PRESENT(pabc) .AND. &
1048 .NOT.
PRESENT(mat_dabc) .AND. &
1049 PRESENT(mat_adbc) .AND. &
1050 .NOT.
PRESENT(mat_abdc))
THEN
1051 CALL integrate_set_3c( &
1052 param%par, potential_parameter, &
1053 la_min(iset), la_max(iset), &
1054 lb_min(jset), lb_max(jset), &
1055 lc_min(kset), lc_max(kset), &
1056 npgfa(iset), npgfb(jset), npgfc(kset), &
1057 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1058 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1061 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1062 offset_a_start, offset_b_start, offset_c_start, &
1063 0, 0, first_set - 1, &
1064 sphi_a, sphi_b, sphi_c, &
1066 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1068 coulomb_context=integral_context, &
1073 do_symmetric=do_symmetric, &
1074 on_diagonal=iatom == jatom, &
1078 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1080 IF (.NOT.
PRESENT(force_a) .AND. &
1081 .NOT.
PRESENT(force_b) .AND. &
1082 .NOT.
PRESENT(force_c) .AND. &
1083 .NOT.
PRESENT(pabc) .AND. &
1084 .NOT.
PRESENT(mat_dabc) .AND. &
1085 PRESENT(mat_adbc) .AND. &
1086 PRESENT(mat_abdc))
THEN
1087 CALL integrate_set_3c( &
1088 param%par, potential_parameter, &
1089 la_min(iset), la_max(iset), &
1090 lb_min(jset), lb_max(jset), &
1091 lc_min(kset), lc_max(kset), &
1092 npgfa(iset), npgfb(jset), npgfc(kset), &
1093 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1094 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1097 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1098 offset_a_start, offset_b_start, offset_c_start, &
1099 0, 0, first_set - 1, &
1100 sphi_a, sphi_b, sphi_c, &
1102 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1104 coulomb_context=integral_context, &
1109 do_symmetric=do_symmetric, &
1110 on_diagonal=iatom == jatom, &
1114 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1116 IF (.NOT.
PRESENT(force_a) .AND. &
1117 .NOT.
PRESENT(force_b) .AND. &
1118 .NOT.
PRESENT(force_c) .AND. &
1119 .NOT.
PRESENT(pabc) .AND. &
1120 PRESENT(mat_dabc) .AND. &
1121 .NOT.
PRESENT(mat_adbc) .AND. &
1122 .NOT.
PRESENT(mat_abdc))
THEN
1123 CALL integrate_set_3c( &
1124 param%par, potential_parameter, &
1125 la_min(iset), la_max(iset), &
1126 lb_min(jset), lb_max(jset), &
1127 lc_min(kset), lc_max(kset), &
1128 npgfa(iset), npgfb(jset), npgfc(kset), &
1129 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1130 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1133 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1134 offset_a_start, offset_b_start, offset_c_start, &
1135 0, 0, first_set - 1, &
1136 sphi_a, sphi_b, sphi_c, &
1138 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1140 coulomb_context=integral_context, &
1145 do_symmetric=do_symmetric, &
1146 on_diagonal=iatom == jatom, &
1150 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1152 IF (.NOT.
PRESENT(force_a) .AND. &
1153 .NOT.
PRESENT(force_b) .AND. &
1154 .NOT.
PRESENT(force_c) .AND. &
1155 .NOT.
PRESENT(pabc) .AND. &
1156 PRESENT(mat_dabc) .AND. &
1157 .NOT.
PRESENT(mat_adbc) .AND. &
1158 PRESENT(mat_abdc))
THEN
1159 CALL integrate_set_3c( &
1160 param%par, potential_parameter, &
1161 la_min(iset), la_max(iset), &
1162 lb_min(jset), lb_max(jset), &
1163 lc_min(kset), lc_max(kset), &
1164 npgfa(iset), npgfb(jset), npgfc(kset), &
1165 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1166 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1169 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1170 offset_a_start, offset_b_start, offset_c_start, &
1171 0, 0, first_set - 1, &
1172 sphi_a, sphi_b, sphi_c, &
1174 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1176 coulomb_context=integral_context, &
1181 do_symmetric=do_symmetric, &
1182 on_diagonal=iatom == jatom, &
1186 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1188 IF (.NOT.
PRESENT(force_a) .AND. &
1189 .NOT.
PRESENT(force_b) .AND. &
1190 .NOT.
PRESENT(force_c) .AND. &
1191 .NOT.
PRESENT(pabc) .AND. &
1192 PRESENT(mat_dabc) .AND. &
1193 PRESENT(mat_adbc) .AND. &
1194 .NOT.
PRESENT(mat_abdc))
THEN
1195 CALL integrate_set_3c( &
1196 param%par, potential_parameter, &
1197 la_min(iset), la_max(iset), &
1198 lb_min(jset), lb_max(jset), &
1199 lc_min(kset), lc_max(kset), &
1200 npgfa(iset), npgfb(jset), npgfc(kset), &
1201 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1202 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1205 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1206 offset_a_start, offset_b_start, offset_c_start, &
1207 0, 0, first_set - 1, &
1208 sphi_a, sphi_b, sphi_c, &
1210 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1212 coulomb_context=integral_context, &
1217 do_symmetric=do_symmetric, &
1218 on_diagonal=iatom == jatom, &
1222 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1224 IF (.NOT.
PRESENT(force_a) .AND. &
1225 .NOT.
PRESENT(force_b) .AND. &
1226 .NOT.
PRESENT(force_c) .AND. &
1227 .NOT.
PRESENT(pabc) .AND. &
1228 PRESENT(mat_dabc) .AND. &
1229 PRESENT(mat_adbc) .AND. &
1230 PRESENT(mat_abdc))
THEN
1231 CALL integrate_set_3c( &
1232 param%par, potential_parameter, &
1233 la_min(iset), la_max(iset), &
1234 lb_min(jset), lb_max(jset), &
1235 lc_min(kset), lc_max(kset), &
1236 npgfa(iset), npgfb(jset), npgfc(kset), &
1237 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1238 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1241 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1242 offset_a_start, offset_b_start, offset_c_start, &
1243 0, 0, first_set - 1, &
1244 sphi_a, sphi_b, sphi_c, &
1246 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1248 coulomb_context=integral_context, &
1253 do_symmetric=do_symmetric, &
1254 on_diagonal=iatom == jatom, &
1258 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1260 IF (.NOT.
PRESENT(force_a) .AND. &
1261 .NOT.
PRESENT(force_b) .AND. &
1262 PRESENT(force_c) .AND. &
1263 .NOT.
PRESENT(pabc) .AND. &
1264 .NOT.
PRESENT(mat_dabc) .AND. &
1265 .NOT.
PRESENT(mat_adbc) .AND. &
1266 .NOT.
PRESENT(mat_abdc))
THEN
1267 CALL integrate_set_3c( &
1268 param%par, potential_parameter, &
1269 la_min(iset), la_max(iset), &
1270 lb_min(jset), lb_max(jset), &
1271 lc_min(kset), lc_max(kset), &
1272 npgfa(iset), npgfb(jset), npgfc(kset), &
1273 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1274 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1277 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1278 offset_a_start, offset_b_start, offset_c_start, &
1279 0, 0, first_set - 1, &
1280 sphi_a, sphi_b, sphi_c, &
1282 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1284 coulomb_context=integral_context, &
1288force_c=force_c(kkind)%forces(:, atom_c), &
1289 do_symmetric=do_symmetric, &
1290 on_diagonal=iatom == jatom, &
1294 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1296 IF (.NOT.
PRESENT(force_a) .AND. &
1297 .NOT.
PRESENT(force_b) .AND. &
1298 PRESENT(force_c) .AND. &
1299 .NOT.
PRESENT(pabc) .AND. &
1300 .NOT.
PRESENT(mat_dabc) .AND. &
1301 .NOT.
PRESENT(mat_adbc) .AND. &
1302 PRESENT(mat_abdc))
THEN
1303 CALL integrate_set_3c( &
1304 param%par, potential_parameter, &
1305 la_min(iset), la_max(iset), &
1306 lb_min(jset), lb_max(jset), &
1307 lc_min(kset), lc_max(kset), &
1308 npgfa(iset), npgfb(jset), npgfc(kset), &
1309 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1310 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1313 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1314 offset_a_start, offset_b_start, offset_c_start, &
1315 0, 0, first_set - 1, &
1316 sphi_a, sphi_b, sphi_c, &
1318 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1320 coulomb_context=integral_context, &
1324force_c=force_c(kkind)%forces(:, atom_c), &
1325 do_symmetric=do_symmetric, &
1326 on_diagonal=iatom == jatom, &
1330 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1332 IF (.NOT.
PRESENT(force_a) .AND. &
1333 .NOT.
PRESENT(force_b) .AND. &
1334 PRESENT(force_c) .AND. &
1335 .NOT.
PRESENT(pabc) .AND. &
1336 .NOT.
PRESENT(mat_dabc) .AND. &
1337 PRESENT(mat_adbc) .AND. &
1338 .NOT.
PRESENT(mat_abdc))
THEN
1339 CALL integrate_set_3c( &
1340 param%par, potential_parameter, &
1341 la_min(iset), la_max(iset), &
1342 lb_min(jset), lb_max(jset), &
1343 lc_min(kset), lc_max(kset), &
1344 npgfa(iset), npgfb(jset), npgfc(kset), &
1345 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1346 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1349 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1350 offset_a_start, offset_b_start, offset_c_start, &
1351 0, 0, first_set - 1, &
1352 sphi_a, sphi_b, sphi_c, &
1354 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1356 coulomb_context=integral_context, &
1360force_c=force_c(kkind)%forces(:, atom_c), &
1361 do_symmetric=do_symmetric, &
1362 on_diagonal=iatom == jatom, &
1366 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1368 IF (.NOT.
PRESENT(force_a) .AND. &
1369 .NOT.
PRESENT(force_b) .AND. &
1370 PRESENT(force_c) .AND. &
1371 .NOT.
PRESENT(pabc) .AND. &
1372 .NOT.
PRESENT(mat_dabc) .AND. &
1373 PRESENT(mat_adbc) .AND. &
1374 PRESENT(mat_abdc))
THEN
1375 CALL integrate_set_3c( &
1376 param%par, potential_parameter, &
1377 la_min(iset), la_max(iset), &
1378 lb_min(jset), lb_max(jset), &
1379 lc_min(kset), lc_max(kset), &
1380 npgfa(iset), npgfb(jset), npgfc(kset), &
1381 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1382 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1385 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1386 offset_a_start, offset_b_start, offset_c_start, &
1387 0, 0, first_set - 1, &
1388 sphi_a, sphi_b, sphi_c, &
1390 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1392 coulomb_context=integral_context, &
1396force_c=force_c(kkind)%forces(:, atom_c), &
1397 do_symmetric=do_symmetric, &
1398 on_diagonal=iatom == jatom, &
1402 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1404 IF (.NOT.
PRESENT(force_a) .AND. &
1405 .NOT.
PRESENT(force_b) .AND. &
1406 PRESENT(force_c) .AND. &
1407 .NOT.
PRESENT(pabc) .AND. &
1408 PRESENT(mat_dabc) .AND. &
1409 .NOT.
PRESENT(mat_adbc) .AND. &
1410 .NOT.
PRESENT(mat_abdc))
THEN
1411 CALL integrate_set_3c( &
1412 param%par, potential_parameter, &
1413 la_min(iset), la_max(iset), &
1414 lb_min(jset), lb_max(jset), &
1415 lc_min(kset), lc_max(kset), &
1416 npgfa(iset), npgfb(jset), npgfc(kset), &
1417 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1418 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1421 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1422 offset_a_start, offset_b_start, offset_c_start, &
1423 0, 0, first_set - 1, &
1424 sphi_a, sphi_b, sphi_c, &
1426 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1428 coulomb_context=integral_context, &
1432force_c=force_c(kkind)%forces(:, atom_c), &
1433 do_symmetric=do_symmetric, &
1434 on_diagonal=iatom == jatom, &
1438 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1440 IF (.NOT.
PRESENT(force_a) .AND. &
1441 .NOT.
PRESENT(force_b) .AND. &
1442 PRESENT(force_c) .AND. &
1443 .NOT.
PRESENT(pabc) .AND. &
1444 PRESENT(mat_dabc) .AND. &
1445 .NOT.
PRESENT(mat_adbc) .AND. &
1446 PRESENT(mat_abdc))
THEN
1447 CALL integrate_set_3c( &
1448 param%par, potential_parameter, &
1449 la_min(iset), la_max(iset), &
1450 lb_min(jset), lb_max(jset), &
1451 lc_min(kset), lc_max(kset), &
1452 npgfa(iset), npgfb(jset), npgfc(kset), &
1453 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1454 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1457 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1458 offset_a_start, offset_b_start, offset_c_start, &
1459 0, 0, first_set - 1, &
1460 sphi_a, sphi_b, sphi_c, &
1462 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1464 coulomb_context=integral_context, &
1468force_c=force_c(kkind)%forces(:, atom_c), &
1469 do_symmetric=do_symmetric, &
1470 on_diagonal=iatom == jatom, &
1474 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1476 IF (.NOT.
PRESENT(force_a) .AND. &
1477 .NOT.
PRESENT(force_b) .AND. &
1478 PRESENT(force_c) .AND. &
1479 .NOT.
PRESENT(pabc) .AND. &
1480 PRESENT(mat_dabc) .AND. &
1481 PRESENT(mat_adbc) .AND. &
1482 .NOT.
PRESENT(mat_abdc))
THEN
1483 CALL integrate_set_3c( &
1484 param%par, potential_parameter, &
1485 la_min(iset), la_max(iset), &
1486 lb_min(jset), lb_max(jset), &
1487 lc_min(kset), lc_max(kset), &
1488 npgfa(iset), npgfb(jset), npgfc(kset), &
1489 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1490 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1493 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1494 offset_a_start, offset_b_start, offset_c_start, &
1495 0, 0, first_set - 1, &
1496 sphi_a, sphi_b, sphi_c, &
1498 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1500 coulomb_context=integral_context, &
1504force_c=force_c(kkind)%forces(:, atom_c), &
1505 do_symmetric=do_symmetric, &
1506 on_diagonal=iatom == jatom, &
1510 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1512 IF (.NOT.
PRESENT(force_a) .AND. &
1513 .NOT.
PRESENT(force_b) .AND. &
1514 PRESENT(force_c) .AND. &
1515 .NOT.
PRESENT(pabc) .AND. &
1516 PRESENT(mat_dabc) .AND. &
1517 PRESENT(mat_adbc) .AND. &
1518 PRESENT(mat_abdc))
THEN
1519 CALL integrate_set_3c( &
1520 param%par, potential_parameter, &
1521 la_min(iset), la_max(iset), &
1522 lb_min(jset), lb_max(jset), &
1523 lc_min(kset), lc_max(kset), &
1524 npgfa(iset), npgfb(jset), npgfc(kset), &
1525 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1526 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1529 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1530 offset_a_start, offset_b_start, offset_c_start, &
1531 0, 0, first_set - 1, &
1532 sphi_a, sphi_b, sphi_c, &
1534 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1536 coulomb_context=integral_context, &
1540force_c=force_c(kkind)%forces(:, atom_c), &
1541 do_symmetric=do_symmetric, &
1542 on_diagonal=iatom == jatom, &
1546 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1548 IF (.NOT.
PRESENT(force_a) .AND. &
1549 PRESENT(force_b) .AND. &
1550 .NOT.
PRESENT(force_c) .AND. &
1551 .NOT.
PRESENT(pabc) .AND. &
1552 .NOT.
PRESENT(mat_dabc) .AND. &
1553 .NOT.
PRESENT(mat_adbc) .AND. &
1554 .NOT.
PRESENT(mat_abdc))
THEN
1555 CALL integrate_set_3c( &
1556 param%par, potential_parameter, &
1557 la_min(iset), la_max(iset), &
1558 lb_min(jset), lb_max(jset), &
1559 lc_min(kset), lc_max(kset), &
1560 npgfa(iset), npgfb(jset), npgfc(kset), &
1561 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1562 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1565 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1566 offset_a_start, offset_b_start, offset_c_start, &
1567 0, 0, first_set - 1, &
1568 sphi_a, sphi_b, sphi_c, &
1570 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1572 coulomb_context=integral_context, &
1575force_b=force_b(jkind)%forces(:, atom_b), &
1577 do_symmetric=do_symmetric, &
1578 on_diagonal=iatom == jatom, &
1582 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1584 IF (.NOT.
PRESENT(force_a) .AND. &
1585 PRESENT(force_b) .AND. &
1586 .NOT.
PRESENT(force_c) .AND. &
1587 .NOT.
PRESENT(pabc) .AND. &
1588 .NOT.
PRESENT(mat_dabc) .AND. &
1589 .NOT.
PRESENT(mat_adbc) .AND. &
1590 PRESENT(mat_abdc))
THEN
1591 CALL integrate_set_3c( &
1592 param%par, potential_parameter, &
1593 la_min(iset), la_max(iset), &
1594 lb_min(jset), lb_max(jset), &
1595 lc_min(kset), lc_max(kset), &
1596 npgfa(iset), npgfb(jset), npgfc(kset), &
1597 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1598 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1601 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1602 offset_a_start, offset_b_start, offset_c_start, &
1603 0, 0, first_set - 1, &
1604 sphi_a, sphi_b, sphi_c, &
1606 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1608 coulomb_context=integral_context, &
1611force_b=force_b(jkind)%forces(:, atom_b), &
1613 do_symmetric=do_symmetric, &
1614 on_diagonal=iatom == jatom, &
1618 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1620 IF (.NOT.
PRESENT(force_a) .AND. &
1621 PRESENT(force_b) .AND. &
1622 .NOT.
PRESENT(force_c) .AND. &
1623 .NOT.
PRESENT(pabc) .AND. &
1624 .NOT.
PRESENT(mat_dabc) .AND. &
1625 PRESENT(mat_adbc) .AND. &
1626 .NOT.
PRESENT(mat_abdc))
THEN
1627 CALL integrate_set_3c( &
1628 param%par, potential_parameter, &
1629 la_min(iset), la_max(iset), &
1630 lb_min(jset), lb_max(jset), &
1631 lc_min(kset), lc_max(kset), &
1632 npgfa(iset), npgfb(jset), npgfc(kset), &
1633 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1634 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1637 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1638 offset_a_start, offset_b_start, offset_c_start, &
1639 0, 0, first_set - 1, &
1640 sphi_a, sphi_b, sphi_c, &
1642 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1644 coulomb_context=integral_context, &
1647force_b=force_b(jkind)%forces(:, atom_b), &
1649 do_symmetric=do_symmetric, &
1650 on_diagonal=iatom == jatom, &
1654 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1656 IF (.NOT.
PRESENT(force_a) .AND. &
1657 PRESENT(force_b) .AND. &
1658 .NOT.
PRESENT(force_c) .AND. &
1659 .NOT.
PRESENT(pabc) .AND. &
1660 .NOT.
PRESENT(mat_dabc) .AND. &
1661 PRESENT(mat_adbc) .AND. &
1662 PRESENT(mat_abdc))
THEN
1663 CALL integrate_set_3c( &
1664 param%par, potential_parameter, &
1665 la_min(iset), la_max(iset), &
1666 lb_min(jset), lb_max(jset), &
1667 lc_min(kset), lc_max(kset), &
1668 npgfa(iset), npgfb(jset), npgfc(kset), &
1669 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1670 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1673 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1674 offset_a_start, offset_b_start, offset_c_start, &
1675 0, 0, first_set - 1, &
1676 sphi_a, sphi_b, sphi_c, &
1678 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1680 coulomb_context=integral_context, &
1683force_b=force_b(jkind)%forces(:, atom_b), &
1685 do_symmetric=do_symmetric, &
1686 on_diagonal=iatom == jatom, &
1690 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1692 IF (.NOT.
PRESENT(force_a) .AND. &
1693 PRESENT(force_b) .AND. &
1694 .NOT.
PRESENT(force_c) .AND. &
1695 .NOT.
PRESENT(pabc) .AND. &
1696 PRESENT(mat_dabc) .AND. &
1697 .NOT.
PRESENT(mat_adbc) .AND. &
1698 .NOT.
PRESENT(mat_abdc))
THEN
1699 CALL integrate_set_3c( &
1700 param%par, potential_parameter, &
1701 la_min(iset), la_max(iset), &
1702 lb_min(jset), lb_max(jset), &
1703 lc_min(kset), lc_max(kset), &
1704 npgfa(iset), npgfb(jset), npgfc(kset), &
1705 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1706 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1709 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1710 offset_a_start, offset_b_start, offset_c_start, &
1711 0, 0, first_set - 1, &
1712 sphi_a, sphi_b, sphi_c, &
1714 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1716 coulomb_context=integral_context, &
1719force_b=force_b(jkind)%forces(:, atom_b), &
1721 do_symmetric=do_symmetric, &
1722 on_diagonal=iatom == jatom, &
1726 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1728 IF (.NOT.
PRESENT(force_a) .AND. &
1729 PRESENT(force_b) .AND. &
1730 .NOT.
PRESENT(force_c) .AND. &
1731 .NOT.
PRESENT(pabc) .AND. &
1732 PRESENT(mat_dabc) .AND. &
1733 .NOT.
PRESENT(mat_adbc) .AND. &
1734 PRESENT(mat_abdc))
THEN
1735 CALL integrate_set_3c( &
1736 param%par, potential_parameter, &
1737 la_min(iset), la_max(iset), &
1738 lb_min(jset), lb_max(jset), &
1739 lc_min(kset), lc_max(kset), &
1740 npgfa(iset), npgfb(jset), npgfc(kset), &
1741 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1742 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1745 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1746 offset_a_start, offset_b_start, offset_c_start, &
1747 0, 0, first_set - 1, &
1748 sphi_a, sphi_b, sphi_c, &
1750 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1752 coulomb_context=integral_context, &
1755force_b=force_b(jkind)%forces(:, atom_b), &
1757 do_symmetric=do_symmetric, &
1758 on_diagonal=iatom == jatom, &
1762 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1764 IF (.NOT.
PRESENT(force_a) .AND. &
1765 PRESENT(force_b) .AND. &
1766 .NOT.
PRESENT(force_c) .AND. &
1767 .NOT.
PRESENT(pabc) .AND. &
1768 PRESENT(mat_dabc) .AND. &
1769 PRESENT(mat_adbc) .AND. &
1770 .NOT.
PRESENT(mat_abdc))
THEN
1771 CALL integrate_set_3c( &
1772 param%par, potential_parameter, &
1773 la_min(iset), la_max(iset), &
1774 lb_min(jset), lb_max(jset), &
1775 lc_min(kset), lc_max(kset), &
1776 npgfa(iset), npgfb(jset), npgfc(kset), &
1777 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1778 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1781 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1782 offset_a_start, offset_b_start, offset_c_start, &
1783 0, 0, first_set - 1, &
1784 sphi_a, sphi_b, sphi_c, &
1786 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1788 coulomb_context=integral_context, &
1791force_b=force_b(jkind)%forces(:, atom_b), &
1793 do_symmetric=do_symmetric, &
1794 on_diagonal=iatom == jatom, &
1798 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1800 IF (.NOT.
PRESENT(force_a) .AND. &
1801 PRESENT(force_b) .AND. &
1802 .NOT.
PRESENT(force_c) .AND. &
1803 .NOT.
PRESENT(pabc) .AND. &
1804 PRESENT(mat_dabc) .AND. &
1805 PRESENT(mat_adbc) .AND. &
1806 PRESENT(mat_abdc))
THEN
1807 CALL integrate_set_3c( &
1808 param%par, potential_parameter, &
1809 la_min(iset), la_max(iset), &
1810 lb_min(jset), lb_max(jset), &
1811 lc_min(kset), lc_max(kset), &
1812 npgfa(iset), npgfb(jset), npgfc(kset), &
1813 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1814 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1817 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1818 offset_a_start, offset_b_start, offset_c_start, &
1819 0, 0, first_set - 1, &
1820 sphi_a, sphi_b, sphi_c, &
1822 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1824 coulomb_context=integral_context, &
1827force_b=force_b(jkind)%forces(:, atom_b), &
1829 do_symmetric=do_symmetric, &
1830 on_diagonal=iatom == jatom, &
1834 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1836 IF (.NOT.
PRESENT(force_a) .AND. &
1837 PRESENT(force_b) .AND. &
1838 PRESENT(force_c) .AND. &
1839 .NOT.
PRESENT(pabc) .AND. &
1840 .NOT.
PRESENT(mat_dabc) .AND. &
1841 .NOT.
PRESENT(mat_adbc) .AND. &
1842 .NOT.
PRESENT(mat_abdc))
THEN
1843 CALL integrate_set_3c( &
1844 param%par, potential_parameter, &
1845 la_min(iset), la_max(iset), &
1846 lb_min(jset), lb_max(jset), &
1847 lc_min(kset), lc_max(kset), &
1848 npgfa(iset), npgfb(jset), npgfc(kset), &
1849 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1850 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1853 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1854 offset_a_start, offset_b_start, offset_c_start, &
1855 0, 0, first_set - 1, &
1856 sphi_a, sphi_b, sphi_c, &
1858 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1860 coulomb_context=integral_context, &
1863force_b=force_b(jkind)%forces(:, atom_b), &
1864force_c=force_c(kkind)%forces(:, atom_c), &
1865 do_symmetric=do_symmetric, &
1866 on_diagonal=iatom == jatom, &
1870 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1872 IF (.NOT.
PRESENT(force_a) .AND. &
1873 PRESENT(force_b) .AND. &
1874 PRESENT(force_c) .AND. &
1875 .NOT.
PRESENT(pabc) .AND. &
1876 .NOT.
PRESENT(mat_dabc) .AND. &
1877 .NOT.
PRESENT(mat_adbc) .AND. &
1878 PRESENT(mat_abdc))
THEN
1879 CALL integrate_set_3c( &
1880 param%par, potential_parameter, &
1881 la_min(iset), la_max(iset), &
1882 lb_min(jset), lb_max(jset), &
1883 lc_min(kset), lc_max(kset), &
1884 npgfa(iset), npgfb(jset), npgfc(kset), &
1885 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1886 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1889 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1890 offset_a_start, offset_b_start, offset_c_start, &
1891 0, 0, first_set - 1, &
1892 sphi_a, sphi_b, sphi_c, &
1894 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1896 coulomb_context=integral_context, &
1899force_b=force_b(jkind)%forces(:, atom_b), &
1900force_c=force_c(kkind)%forces(:, atom_c), &
1901 do_symmetric=do_symmetric, &
1902 on_diagonal=iatom == jatom, &
1906 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1908 IF (.NOT.
PRESENT(force_a) .AND. &
1909 PRESENT(force_b) .AND. &
1910 PRESENT(force_c) .AND. &
1911 .NOT.
PRESENT(pabc) .AND. &
1912 .NOT.
PRESENT(mat_dabc) .AND. &
1913 PRESENT(mat_adbc) .AND. &
1914 .NOT.
PRESENT(mat_abdc))
THEN
1915 CALL integrate_set_3c( &
1916 param%par, potential_parameter, &
1917 la_min(iset), la_max(iset), &
1918 lb_min(jset), lb_max(jset), &
1919 lc_min(kset), lc_max(kset), &
1920 npgfa(iset), npgfb(jset), npgfc(kset), &
1921 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1922 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1925 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1926 offset_a_start, offset_b_start, offset_c_start, &
1927 0, 0, first_set - 1, &
1928 sphi_a, sphi_b, sphi_c, &
1930 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1932 coulomb_context=integral_context, &
1935force_b=force_b(jkind)%forces(:, atom_b), &
1936force_c=force_c(kkind)%forces(:, atom_c), &
1937 do_symmetric=do_symmetric, &
1938 on_diagonal=iatom == jatom, &
1942 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1944 IF (.NOT.
PRESENT(force_a) .AND. &
1945 PRESENT(force_b) .AND. &
1946 PRESENT(force_c) .AND. &
1947 .NOT.
PRESENT(pabc) .AND. &
1948 .NOT.
PRESENT(mat_dabc) .AND. &
1949 PRESENT(mat_adbc) .AND. &
1950 PRESENT(mat_abdc))
THEN
1951 CALL integrate_set_3c( &
1952 param%par, potential_parameter, &
1953 la_min(iset), la_max(iset), &
1954 lb_min(jset), lb_max(jset), &
1955 lc_min(kset), lc_max(kset), &
1956 npgfa(iset), npgfb(jset), npgfc(kset), &
1957 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1958 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1961 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1962 offset_a_start, offset_b_start, offset_c_start, &
1963 0, 0, first_set - 1, &
1964 sphi_a, sphi_b, sphi_c, &
1966 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
1968 coulomb_context=integral_context, &
1971force_b=force_b(jkind)%forces(:, atom_b), &
1972force_c=force_c(kkind)%forces(:, atom_c), &
1973 do_symmetric=do_symmetric, &
1974 on_diagonal=iatom == jatom, &
1978 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
1980 IF (.NOT.
PRESENT(force_a) .AND. &
1981 PRESENT(force_b) .AND. &
1982 PRESENT(force_c) .AND. &
1983 .NOT.
PRESENT(pabc) .AND. &
1984 PRESENT(mat_dabc) .AND. &
1985 .NOT.
PRESENT(mat_adbc) .AND. &
1986 .NOT.
PRESENT(mat_abdc))
THEN
1987 CALL integrate_set_3c( &
1988 param%par, potential_parameter, &
1989 la_min(iset), la_max(iset), &
1990 lb_min(jset), lb_max(jset), &
1991 lc_min(kset), lc_max(kset), &
1992 npgfa(iset), npgfb(jset), npgfc(kset), &
1993 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
1994 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
1997 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
1998 offset_a_start, offset_b_start, offset_c_start, &
1999 0, 0, first_set - 1, &
2000 sphi_a, sphi_b, sphi_c, &
2002 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2004 coulomb_context=integral_context, &
2007force_b=force_b(jkind)%forces(:, atom_b), &
2008force_c=force_c(kkind)%forces(:, atom_c), &
2009 do_symmetric=do_symmetric, &
2010 on_diagonal=iatom == jatom, &
2014 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2016 IF (.NOT.
PRESENT(force_a) .AND. &
2017 PRESENT(force_b) .AND. &
2018 PRESENT(force_c) .AND. &
2019 .NOT.
PRESENT(pabc) .AND. &
2020 PRESENT(mat_dabc) .AND. &
2021 .NOT.
PRESENT(mat_adbc) .AND. &
2022 PRESENT(mat_abdc))
THEN
2023 CALL integrate_set_3c( &
2024 param%par, potential_parameter, &
2025 la_min(iset), la_max(iset), &
2026 lb_min(jset), lb_max(jset), &
2027 lc_min(kset), lc_max(kset), &
2028 npgfa(iset), npgfb(jset), npgfc(kset), &
2029 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2030 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2033 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2034 offset_a_start, offset_b_start, offset_c_start, &
2035 0, 0, first_set - 1, &
2036 sphi_a, sphi_b, sphi_c, &
2038 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2040 coulomb_context=integral_context, &
2043force_b=force_b(jkind)%forces(:, atom_b), &
2044force_c=force_c(kkind)%forces(:, atom_c), &
2045 do_symmetric=do_symmetric, &
2046 on_diagonal=iatom == jatom, &
2050 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2052 IF (.NOT.
PRESENT(force_a) .AND. &
2053 PRESENT(force_b) .AND. &
2054 PRESENT(force_c) .AND. &
2055 .NOT.
PRESENT(pabc) .AND. &
2056 PRESENT(mat_dabc) .AND. &
2057 PRESENT(mat_adbc) .AND. &
2058 .NOT.
PRESENT(mat_abdc))
THEN
2059 CALL integrate_set_3c( &
2060 param%par, potential_parameter, &
2061 la_min(iset), la_max(iset), &
2062 lb_min(jset), lb_max(jset), &
2063 lc_min(kset), lc_max(kset), &
2064 npgfa(iset), npgfb(jset), npgfc(kset), &
2065 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2066 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2069 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2070 offset_a_start, offset_b_start, offset_c_start, &
2071 0, 0, first_set - 1, &
2072 sphi_a, sphi_b, sphi_c, &
2074 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2076 coulomb_context=integral_context, &
2079force_b=force_b(jkind)%forces(:, atom_b), &
2080force_c=force_c(kkind)%forces(:, atom_c), &
2081 do_symmetric=do_symmetric, &
2082 on_diagonal=iatom == jatom, &
2086 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2088 IF (.NOT.
PRESENT(force_a) .AND. &
2089 PRESENT(force_b) .AND. &
2090 PRESENT(force_c) .AND. &
2091 .NOT.
PRESENT(pabc) .AND. &
2092 PRESENT(mat_dabc) .AND. &
2093 PRESENT(mat_adbc) .AND. &
2094 PRESENT(mat_abdc))
THEN
2095 CALL integrate_set_3c( &
2096 param%par, potential_parameter, &
2097 la_min(iset), la_max(iset), &
2098 lb_min(jset), lb_max(jset), &
2099 lc_min(kset), lc_max(kset), &
2100 npgfa(iset), npgfb(jset), npgfc(kset), &
2101 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2102 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2105 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2106 offset_a_start, offset_b_start, offset_c_start, &
2107 0, 0, first_set - 1, &
2108 sphi_a, sphi_b, sphi_c, &
2110 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2112 coulomb_context=integral_context, &
2115force_b=force_b(jkind)%forces(:, atom_b), &
2116force_c=force_c(kkind)%forces(:, atom_c), &
2117 do_symmetric=do_symmetric, &
2118 on_diagonal=iatom == jatom, &
2122 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2124 IF (
PRESENT(force_a) .AND. &
2125 .NOT.
PRESENT(force_b) .AND. &
2126 .NOT.
PRESENT(force_c) .AND. &
2127 .NOT.
PRESENT(pabc) .AND. &
2128 .NOT.
PRESENT(mat_dabc) .AND. &
2129 .NOT.
PRESENT(mat_adbc) .AND. &
2130 .NOT.
PRESENT(mat_abdc))
THEN
2131 CALL integrate_set_3c( &
2132 param%par, potential_parameter, &
2133 la_min(iset), la_max(iset), &
2134 lb_min(jset), lb_max(jset), &
2135 lc_min(kset), lc_max(kset), &
2136 npgfa(iset), npgfb(jset), npgfc(kset), &
2137 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2138 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2141 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2142 offset_a_start, offset_b_start, offset_c_start, &
2143 0, 0, first_set - 1, &
2144 sphi_a, sphi_b, sphi_c, &
2146 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2148 coulomb_context=integral_context, &
2150force_a=force_a(ikind)%forces(:, atom_a), &
2153 do_symmetric=do_symmetric, &
2154 on_diagonal=iatom == jatom, &
2158 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2160 IF (
PRESENT(force_a) .AND. &
2161 .NOT.
PRESENT(force_b) .AND. &
2162 .NOT.
PRESENT(force_c) .AND. &
2163 .NOT.
PRESENT(pabc) .AND. &
2164 .NOT.
PRESENT(mat_dabc) .AND. &
2165 .NOT.
PRESENT(mat_adbc) .AND. &
2166 PRESENT(mat_abdc))
THEN
2167 CALL integrate_set_3c( &
2168 param%par, potential_parameter, &
2169 la_min(iset), la_max(iset), &
2170 lb_min(jset), lb_max(jset), &
2171 lc_min(kset), lc_max(kset), &
2172 npgfa(iset), npgfb(jset), npgfc(kset), &
2173 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2174 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2177 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2178 offset_a_start, offset_b_start, offset_c_start, &
2179 0, 0, first_set - 1, &
2180 sphi_a, sphi_b, sphi_c, &
2182 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2184 coulomb_context=integral_context, &
2186force_a=force_a(ikind)%forces(:, atom_a), &
2189 do_symmetric=do_symmetric, &
2190 on_diagonal=iatom == jatom, &
2194 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2196 IF (
PRESENT(force_a) .AND. &
2197 .NOT.
PRESENT(force_b) .AND. &
2198 .NOT.
PRESENT(force_c) .AND. &
2199 .NOT.
PRESENT(pabc) .AND. &
2200 .NOT.
PRESENT(mat_dabc) .AND. &
2201 PRESENT(mat_adbc) .AND. &
2202 .NOT.
PRESENT(mat_abdc))
THEN
2203 CALL integrate_set_3c( &
2204 param%par, potential_parameter, &
2205 la_min(iset), la_max(iset), &
2206 lb_min(jset), lb_max(jset), &
2207 lc_min(kset), lc_max(kset), &
2208 npgfa(iset), npgfb(jset), npgfc(kset), &
2209 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2210 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2213 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2214 offset_a_start, offset_b_start, offset_c_start, &
2215 0, 0, first_set - 1, &
2216 sphi_a, sphi_b, sphi_c, &
2218 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2220 coulomb_context=integral_context, &
2222force_a=force_a(ikind)%forces(:, atom_a), &
2225 do_symmetric=do_symmetric, &
2226 on_diagonal=iatom == jatom, &
2230 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2232 IF (
PRESENT(force_a) .AND. &
2233 .NOT.
PRESENT(force_b) .AND. &
2234 .NOT.
PRESENT(force_c) .AND. &
2235 .NOT.
PRESENT(pabc) .AND. &
2236 .NOT.
PRESENT(mat_dabc) .AND. &
2237 PRESENT(mat_adbc) .AND. &
2238 PRESENT(mat_abdc))
THEN
2239 CALL integrate_set_3c( &
2240 param%par, potential_parameter, &
2241 la_min(iset), la_max(iset), &
2242 lb_min(jset), lb_max(jset), &
2243 lc_min(kset), lc_max(kset), &
2244 npgfa(iset), npgfb(jset), npgfc(kset), &
2245 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2246 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2249 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2250 offset_a_start, offset_b_start, offset_c_start, &
2251 0, 0, first_set - 1, &
2252 sphi_a, sphi_b, sphi_c, &
2254 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2256 coulomb_context=integral_context, &
2258force_a=force_a(ikind)%forces(:, atom_a), &
2261 do_symmetric=do_symmetric, &
2262 on_diagonal=iatom == jatom, &
2266 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2268 IF (
PRESENT(force_a) .AND. &
2269 .NOT.
PRESENT(force_b) .AND. &
2270 .NOT.
PRESENT(force_c) .AND. &
2271 .NOT.
PRESENT(pabc) .AND. &
2272 PRESENT(mat_dabc) .AND. &
2273 .NOT.
PRESENT(mat_adbc) .AND. &
2274 .NOT.
PRESENT(mat_abdc))
THEN
2275 CALL integrate_set_3c( &
2276 param%par, potential_parameter, &
2277 la_min(iset), la_max(iset), &
2278 lb_min(jset), lb_max(jset), &
2279 lc_min(kset), lc_max(kset), &
2280 npgfa(iset), npgfb(jset), npgfc(kset), &
2281 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2282 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2285 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2286 offset_a_start, offset_b_start, offset_c_start, &
2287 0, 0, first_set - 1, &
2288 sphi_a, sphi_b, sphi_c, &
2290 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2292 coulomb_context=integral_context, &
2294force_a=force_a(ikind)%forces(:, atom_a), &
2297 do_symmetric=do_symmetric, &
2298 on_diagonal=iatom == jatom, &
2302 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2304 IF (
PRESENT(force_a) .AND. &
2305 .NOT.
PRESENT(force_b) .AND. &
2306 .NOT.
PRESENT(force_c) .AND. &
2307 .NOT.
PRESENT(pabc) .AND. &
2308 PRESENT(mat_dabc) .AND. &
2309 .NOT.
PRESENT(mat_adbc) .AND. &
2310 PRESENT(mat_abdc))
THEN
2311 CALL integrate_set_3c( &
2312 param%par, potential_parameter, &
2313 la_min(iset), la_max(iset), &
2314 lb_min(jset), lb_max(jset), &
2315 lc_min(kset), lc_max(kset), &
2316 npgfa(iset), npgfb(jset), npgfc(kset), &
2317 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2318 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2321 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2322 offset_a_start, offset_b_start, offset_c_start, &
2323 0, 0, first_set - 1, &
2324 sphi_a, sphi_b, sphi_c, &
2326 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2328 coulomb_context=integral_context, &
2330force_a=force_a(ikind)%forces(:, atom_a), &
2333 do_symmetric=do_symmetric, &
2334 on_diagonal=iatom == jatom, &
2338 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2340 IF (
PRESENT(force_a) .AND. &
2341 .NOT.
PRESENT(force_b) .AND. &
2342 .NOT.
PRESENT(force_c) .AND. &
2343 .NOT.
PRESENT(pabc) .AND. &
2344 PRESENT(mat_dabc) .AND. &
2345 PRESENT(mat_adbc) .AND. &
2346 .NOT.
PRESENT(mat_abdc))
THEN
2347 CALL integrate_set_3c( &
2348 param%par, potential_parameter, &
2349 la_min(iset), la_max(iset), &
2350 lb_min(jset), lb_max(jset), &
2351 lc_min(kset), lc_max(kset), &
2352 npgfa(iset), npgfb(jset), npgfc(kset), &
2353 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2354 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2357 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2358 offset_a_start, offset_b_start, offset_c_start, &
2359 0, 0, first_set - 1, &
2360 sphi_a, sphi_b, sphi_c, &
2362 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2364 coulomb_context=integral_context, &
2366force_a=force_a(ikind)%forces(:, atom_a), &
2369 do_symmetric=do_symmetric, &
2370 on_diagonal=iatom == jatom, &
2374 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2376 IF (
PRESENT(force_a) .AND. &
2377 .NOT.
PRESENT(force_b) .AND. &
2378 .NOT.
PRESENT(force_c) .AND. &
2379 .NOT.
PRESENT(pabc) .AND. &
2380 PRESENT(mat_dabc) .AND. &
2381 PRESENT(mat_adbc) .AND. &
2382 PRESENT(mat_abdc))
THEN
2383 CALL integrate_set_3c( &
2384 param%par, potential_parameter, &
2385 la_min(iset), la_max(iset), &
2386 lb_min(jset), lb_max(jset), &
2387 lc_min(kset), lc_max(kset), &
2388 npgfa(iset), npgfb(jset), npgfc(kset), &
2389 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2390 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2393 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2394 offset_a_start, offset_b_start, offset_c_start, &
2395 0, 0, first_set - 1, &
2396 sphi_a, sphi_b, sphi_c, &
2398 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2400 coulomb_context=integral_context, &
2402force_a=force_a(ikind)%forces(:, atom_a), &
2405 do_symmetric=do_symmetric, &
2406 on_diagonal=iatom == jatom, &
2410 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2412 IF (
PRESENT(force_a) .AND. &
2413 .NOT.
PRESENT(force_b) .AND. &
2414 PRESENT(force_c) .AND. &
2415 .NOT.
PRESENT(pabc) .AND. &
2416 .NOT.
PRESENT(mat_dabc) .AND. &
2417 .NOT.
PRESENT(mat_adbc) .AND. &
2418 .NOT.
PRESENT(mat_abdc))
THEN
2419 CALL integrate_set_3c( &
2420 param%par, potential_parameter, &
2421 la_min(iset), la_max(iset), &
2422 lb_min(jset), lb_max(jset), &
2423 lc_min(kset), lc_max(kset), &
2424 npgfa(iset), npgfb(jset), npgfc(kset), &
2425 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2426 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2429 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2430 offset_a_start, offset_b_start, offset_c_start, &
2431 0, 0, first_set - 1, &
2432 sphi_a, sphi_b, sphi_c, &
2434 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2436 coulomb_context=integral_context, &
2438force_a=force_a(ikind)%forces(:, atom_a), &
2440force_c=force_c(kkind)%forces(:, atom_c), &
2441 do_symmetric=do_symmetric, &
2442 on_diagonal=iatom == jatom, &
2446 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2448 IF (
PRESENT(force_a) .AND. &
2449 .NOT.
PRESENT(force_b) .AND. &
2450 PRESENT(force_c) .AND. &
2451 .NOT.
PRESENT(pabc) .AND. &
2452 .NOT.
PRESENT(mat_dabc) .AND. &
2453 .NOT.
PRESENT(mat_adbc) .AND. &
2454 PRESENT(mat_abdc))
THEN
2455 CALL integrate_set_3c( &
2456 param%par, potential_parameter, &
2457 la_min(iset), la_max(iset), &
2458 lb_min(jset), lb_max(jset), &
2459 lc_min(kset), lc_max(kset), &
2460 npgfa(iset), npgfb(jset), npgfc(kset), &
2461 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2462 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2465 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2466 offset_a_start, offset_b_start, offset_c_start, &
2467 0, 0, first_set - 1, &
2468 sphi_a, sphi_b, sphi_c, &
2470 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2472 coulomb_context=integral_context, &
2474force_a=force_a(ikind)%forces(:, atom_a), &
2476force_c=force_c(kkind)%forces(:, atom_c), &
2477 do_symmetric=do_symmetric, &
2478 on_diagonal=iatom == jatom, &
2482 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2484 IF (
PRESENT(force_a) .AND. &
2485 .NOT.
PRESENT(force_b) .AND. &
2486 PRESENT(force_c) .AND. &
2487 .NOT.
PRESENT(pabc) .AND. &
2488 .NOT.
PRESENT(mat_dabc) .AND. &
2489 PRESENT(mat_adbc) .AND. &
2490 .NOT.
PRESENT(mat_abdc))
THEN
2491 CALL integrate_set_3c( &
2492 param%par, potential_parameter, &
2493 la_min(iset), la_max(iset), &
2494 lb_min(jset), lb_max(jset), &
2495 lc_min(kset), lc_max(kset), &
2496 npgfa(iset), npgfb(jset), npgfc(kset), &
2497 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2498 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2501 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2502 offset_a_start, offset_b_start, offset_c_start, &
2503 0, 0, first_set - 1, &
2504 sphi_a, sphi_b, sphi_c, &
2506 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2508 coulomb_context=integral_context, &
2510force_a=force_a(ikind)%forces(:, atom_a), &
2512force_c=force_c(kkind)%forces(:, atom_c), &
2513 do_symmetric=do_symmetric, &
2514 on_diagonal=iatom == jatom, &
2518 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2520 IF (
PRESENT(force_a) .AND. &
2521 .NOT.
PRESENT(force_b) .AND. &
2522 PRESENT(force_c) .AND. &
2523 .NOT.
PRESENT(pabc) .AND. &
2524 .NOT.
PRESENT(mat_dabc) .AND. &
2525 PRESENT(mat_adbc) .AND. &
2526 PRESENT(mat_abdc))
THEN
2527 CALL integrate_set_3c( &
2528 param%par, potential_parameter, &
2529 la_min(iset), la_max(iset), &
2530 lb_min(jset), lb_max(jset), &
2531 lc_min(kset), lc_max(kset), &
2532 npgfa(iset), npgfb(jset), npgfc(kset), &
2533 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2534 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2537 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2538 offset_a_start, offset_b_start, offset_c_start, &
2539 0, 0, first_set - 1, &
2540 sphi_a, sphi_b, sphi_c, &
2542 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2544 coulomb_context=integral_context, &
2546force_a=force_a(ikind)%forces(:, atom_a), &
2548force_c=force_c(kkind)%forces(:, atom_c), &
2549 do_symmetric=do_symmetric, &
2550 on_diagonal=iatom == jatom, &
2554 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2556 IF (
PRESENT(force_a) .AND. &
2557 .NOT.
PRESENT(force_b) .AND. &
2558 PRESENT(force_c) .AND. &
2559 .NOT.
PRESENT(pabc) .AND. &
2560 PRESENT(mat_dabc) .AND. &
2561 .NOT.
PRESENT(mat_adbc) .AND. &
2562 .NOT.
PRESENT(mat_abdc))
THEN
2563 CALL integrate_set_3c( &
2564 param%par, potential_parameter, &
2565 la_min(iset), la_max(iset), &
2566 lb_min(jset), lb_max(jset), &
2567 lc_min(kset), lc_max(kset), &
2568 npgfa(iset), npgfb(jset), npgfc(kset), &
2569 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2570 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2573 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2574 offset_a_start, offset_b_start, offset_c_start, &
2575 0, 0, first_set - 1, &
2576 sphi_a, sphi_b, sphi_c, &
2578 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2580 coulomb_context=integral_context, &
2582force_a=force_a(ikind)%forces(:, atom_a), &
2584force_c=force_c(kkind)%forces(:, atom_c), &
2585 do_symmetric=do_symmetric, &
2586 on_diagonal=iatom == jatom, &
2590 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2592 IF (
PRESENT(force_a) .AND. &
2593 .NOT.
PRESENT(force_b) .AND. &
2594 PRESENT(force_c) .AND. &
2595 .NOT.
PRESENT(pabc) .AND. &
2596 PRESENT(mat_dabc) .AND. &
2597 .NOT.
PRESENT(mat_adbc) .AND. &
2598 PRESENT(mat_abdc))
THEN
2599 CALL integrate_set_3c( &
2600 param%par, potential_parameter, &
2601 la_min(iset), la_max(iset), &
2602 lb_min(jset), lb_max(jset), &
2603 lc_min(kset), lc_max(kset), &
2604 npgfa(iset), npgfb(jset), npgfc(kset), &
2605 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2606 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2609 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2610 offset_a_start, offset_b_start, offset_c_start, &
2611 0, 0, first_set - 1, &
2612 sphi_a, sphi_b, sphi_c, &
2614 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2616 coulomb_context=integral_context, &
2618force_a=force_a(ikind)%forces(:, atom_a), &
2620force_c=force_c(kkind)%forces(:, atom_c), &
2621 do_symmetric=do_symmetric, &
2622 on_diagonal=iatom == jatom, &
2626 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2628 IF (
PRESENT(force_a) .AND. &
2629 .NOT.
PRESENT(force_b) .AND. &
2630 PRESENT(force_c) .AND. &
2631 .NOT.
PRESENT(pabc) .AND. &
2632 PRESENT(mat_dabc) .AND. &
2633 PRESENT(mat_adbc) .AND. &
2634 .NOT.
PRESENT(mat_abdc))
THEN
2635 CALL integrate_set_3c( &
2636 param%par, potential_parameter, &
2637 la_min(iset), la_max(iset), &
2638 lb_min(jset), lb_max(jset), &
2639 lc_min(kset), lc_max(kset), &
2640 npgfa(iset), npgfb(jset), npgfc(kset), &
2641 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2642 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2645 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2646 offset_a_start, offset_b_start, offset_c_start, &
2647 0, 0, first_set - 1, &
2648 sphi_a, sphi_b, sphi_c, &
2650 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2652 coulomb_context=integral_context, &
2654force_a=force_a(ikind)%forces(:, atom_a), &
2656force_c=force_c(kkind)%forces(:, atom_c), &
2657 do_symmetric=do_symmetric, &
2658 on_diagonal=iatom == jatom, &
2662 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2664 IF (
PRESENT(force_a) .AND. &
2665 .NOT.
PRESENT(force_b) .AND. &
2666 PRESENT(force_c) .AND. &
2667 .NOT.
PRESENT(pabc) .AND. &
2668 PRESENT(mat_dabc) .AND. &
2669 PRESENT(mat_adbc) .AND. &
2670 PRESENT(mat_abdc))
THEN
2671 CALL integrate_set_3c( &
2672 param%par, potential_parameter, &
2673 la_min(iset), la_max(iset), &
2674 lb_min(jset), lb_max(jset), &
2675 lc_min(kset), lc_max(kset), &
2676 npgfa(iset), npgfb(jset), npgfc(kset), &
2677 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2678 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2681 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2682 offset_a_start, offset_b_start, offset_c_start, &
2683 0, 0, first_set - 1, &
2684 sphi_a, sphi_b, sphi_c, &
2686 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2688 coulomb_context=integral_context, &
2690force_a=force_a(ikind)%forces(:, atom_a), &
2692force_c=force_c(kkind)%forces(:, atom_c), &
2693 do_symmetric=do_symmetric, &
2694 on_diagonal=iatom == jatom, &
2698 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2700 IF (
PRESENT(force_a) .AND. &
2701 PRESENT(force_b) .AND. &
2702 .NOT.
PRESENT(force_c) .AND. &
2703 .NOT.
PRESENT(pabc) .AND. &
2704 .NOT.
PRESENT(mat_dabc) .AND. &
2705 .NOT.
PRESENT(mat_adbc) .AND. &
2706 .NOT.
PRESENT(mat_abdc))
THEN
2707 CALL integrate_set_3c( &
2708 param%par, potential_parameter, &
2709 la_min(iset), la_max(iset), &
2710 lb_min(jset), lb_max(jset), &
2711 lc_min(kset), lc_max(kset), &
2712 npgfa(iset), npgfb(jset), npgfc(kset), &
2713 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2714 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2717 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2718 offset_a_start, offset_b_start, offset_c_start, &
2719 0, 0, first_set - 1, &
2720 sphi_a, sphi_b, sphi_c, &
2722 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2724 coulomb_context=integral_context, &
2726force_a=force_a(ikind)%forces(:, atom_a), &
2727force_b=force_b(jkind)%forces(:, atom_b), &
2729 do_symmetric=do_symmetric, &
2730 on_diagonal=iatom == jatom, &
2734 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2736 IF (
PRESENT(force_a) .AND. &
2737 PRESENT(force_b) .AND. &
2738 .NOT.
PRESENT(force_c) .AND. &
2739 .NOT.
PRESENT(pabc) .AND. &
2740 .NOT.
PRESENT(mat_dabc) .AND. &
2741 .NOT.
PRESENT(mat_adbc) .AND. &
2742 PRESENT(mat_abdc))
THEN
2743 CALL integrate_set_3c( &
2744 param%par, potential_parameter, &
2745 la_min(iset), la_max(iset), &
2746 lb_min(jset), lb_max(jset), &
2747 lc_min(kset), lc_max(kset), &
2748 npgfa(iset), npgfb(jset), npgfc(kset), &
2749 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2750 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2753 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2754 offset_a_start, offset_b_start, offset_c_start, &
2755 0, 0, first_set - 1, &
2756 sphi_a, sphi_b, sphi_c, &
2758 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2760 coulomb_context=integral_context, &
2762force_a=force_a(ikind)%forces(:, atom_a), &
2763force_b=force_b(jkind)%forces(:, atom_b), &
2765 do_symmetric=do_symmetric, &
2766 on_diagonal=iatom == jatom, &
2770 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2772 IF (
PRESENT(force_a) .AND. &
2773 PRESENT(force_b) .AND. &
2774 .NOT.
PRESENT(force_c) .AND. &
2775 .NOT.
PRESENT(pabc) .AND. &
2776 .NOT.
PRESENT(mat_dabc) .AND. &
2777 PRESENT(mat_adbc) .AND. &
2778 .NOT.
PRESENT(mat_abdc))
THEN
2779 CALL integrate_set_3c( &
2780 param%par, potential_parameter, &
2781 la_min(iset), la_max(iset), &
2782 lb_min(jset), lb_max(jset), &
2783 lc_min(kset), lc_max(kset), &
2784 npgfa(iset), npgfb(jset), npgfc(kset), &
2785 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2786 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2789 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2790 offset_a_start, offset_b_start, offset_c_start, &
2791 0, 0, first_set - 1, &
2792 sphi_a, sphi_b, sphi_c, &
2794 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2796 coulomb_context=integral_context, &
2798force_a=force_a(ikind)%forces(:, atom_a), &
2799force_b=force_b(jkind)%forces(:, atom_b), &
2801 do_symmetric=do_symmetric, &
2802 on_diagonal=iatom == jatom, &
2806 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2808 IF (
PRESENT(force_a) .AND. &
2809 PRESENT(force_b) .AND. &
2810 .NOT.
PRESENT(force_c) .AND. &
2811 .NOT.
PRESENT(pabc) .AND. &
2812 .NOT.
PRESENT(mat_dabc) .AND. &
2813 PRESENT(mat_adbc) .AND. &
2814 PRESENT(mat_abdc))
THEN
2815 CALL integrate_set_3c( &
2816 param%par, potential_parameter, &
2817 la_min(iset), la_max(iset), &
2818 lb_min(jset), lb_max(jset), &
2819 lc_min(kset), lc_max(kset), &
2820 npgfa(iset), npgfb(jset), npgfc(kset), &
2821 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2822 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2825 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2826 offset_a_start, offset_b_start, offset_c_start, &
2827 0, 0, first_set - 1, &
2828 sphi_a, sphi_b, sphi_c, &
2830 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2832 coulomb_context=integral_context, &
2834force_a=force_a(ikind)%forces(:, atom_a), &
2835force_b=force_b(jkind)%forces(:, atom_b), &
2837 do_symmetric=do_symmetric, &
2838 on_diagonal=iatom == jatom, &
2842 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2844 IF (
PRESENT(force_a) .AND. &
2845 PRESENT(force_b) .AND. &
2846 .NOT.
PRESENT(force_c) .AND. &
2847 .NOT.
PRESENT(pabc) .AND. &
2848 PRESENT(mat_dabc) .AND. &
2849 .NOT.
PRESENT(mat_adbc) .AND. &
2850 .NOT.
PRESENT(mat_abdc))
THEN
2851 CALL integrate_set_3c( &
2852 param%par, potential_parameter, &
2853 la_min(iset), la_max(iset), &
2854 lb_min(jset), lb_max(jset), &
2855 lc_min(kset), lc_max(kset), &
2856 npgfa(iset), npgfb(jset), npgfc(kset), &
2857 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2858 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2861 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2862 offset_a_start, offset_b_start, offset_c_start, &
2863 0, 0, first_set - 1, &
2864 sphi_a, sphi_b, sphi_c, &
2866 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2868 coulomb_context=integral_context, &
2870force_a=force_a(ikind)%forces(:, atom_a), &
2871force_b=force_b(jkind)%forces(:, atom_b), &
2873 do_symmetric=do_symmetric, &
2874 on_diagonal=iatom == jatom, &
2878 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2880 IF (
PRESENT(force_a) .AND. &
2881 PRESENT(force_b) .AND. &
2882 .NOT.
PRESENT(force_c) .AND. &
2883 .NOT.
PRESENT(pabc) .AND. &
2884 PRESENT(mat_dabc) .AND. &
2885 .NOT.
PRESENT(mat_adbc) .AND. &
2886 PRESENT(mat_abdc))
THEN
2887 CALL integrate_set_3c( &
2888 param%par, potential_parameter, &
2889 la_min(iset), la_max(iset), &
2890 lb_min(jset), lb_max(jset), &
2891 lc_min(kset), lc_max(kset), &
2892 npgfa(iset), npgfb(jset), npgfc(kset), &
2893 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2894 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2897 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2898 offset_a_start, offset_b_start, offset_c_start, &
2899 0, 0, first_set - 1, &
2900 sphi_a, sphi_b, sphi_c, &
2902 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2904 coulomb_context=integral_context, &
2906force_a=force_a(ikind)%forces(:, atom_a), &
2907force_b=force_b(jkind)%forces(:, atom_b), &
2909 do_symmetric=do_symmetric, &
2910 on_diagonal=iatom == jatom, &
2914 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2916 IF (
PRESENT(force_a) .AND. &
2917 PRESENT(force_b) .AND. &
2918 .NOT.
PRESENT(force_c) .AND. &
2919 .NOT.
PRESENT(pabc) .AND. &
2920 PRESENT(mat_dabc) .AND. &
2921 PRESENT(mat_adbc) .AND. &
2922 .NOT.
PRESENT(mat_abdc))
THEN
2923 CALL integrate_set_3c( &
2924 param%par, potential_parameter, &
2925 la_min(iset), la_max(iset), &
2926 lb_min(jset), lb_max(jset), &
2927 lc_min(kset), lc_max(kset), &
2928 npgfa(iset), npgfb(jset), npgfc(kset), &
2929 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2930 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2933 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2934 offset_a_start, offset_b_start, offset_c_start, &
2935 0, 0, first_set - 1, &
2936 sphi_a, sphi_b, sphi_c, &
2938 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2940 coulomb_context=integral_context, &
2942force_a=force_a(ikind)%forces(:, atom_a), &
2943force_b=force_b(jkind)%forces(:, atom_b), &
2945 do_symmetric=do_symmetric, &
2946 on_diagonal=iatom == jatom, &
2950 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2952 IF (
PRESENT(force_a) .AND. &
2953 PRESENT(force_b) .AND. &
2954 .NOT.
PRESENT(force_c) .AND. &
2955 .NOT.
PRESENT(pabc) .AND. &
2956 PRESENT(mat_dabc) .AND. &
2957 PRESENT(mat_adbc) .AND. &
2958 PRESENT(mat_abdc))
THEN
2959 CALL integrate_set_3c( &
2960 param%par, potential_parameter, &
2961 la_min(iset), la_max(iset), &
2962 lb_min(jset), lb_max(jset), &
2963 lc_min(kset), lc_max(kset), &
2964 npgfa(iset), npgfb(jset), npgfc(kset), &
2965 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
2966 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
2969 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
2970 offset_a_start, offset_b_start, offset_c_start, &
2971 0, 0, first_set - 1, &
2972 sphi_a, sphi_b, sphi_c, &
2974 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
2976 coulomb_context=integral_context, &
2978force_a=force_a(ikind)%forces(:, atom_a), &
2979force_b=force_b(jkind)%forces(:, atom_b), &
2981 do_symmetric=do_symmetric, &
2982 on_diagonal=iatom == jatom, &
2986 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
2988 IF (
PRESENT(force_a) .AND. &
2989 PRESENT(force_b) .AND. &
2990 PRESENT(force_c) .AND. &
2991 .NOT.
PRESENT(pabc) .AND. &
2992 .NOT.
PRESENT(mat_dabc) .AND. &
2993 .NOT.
PRESENT(mat_adbc) .AND. &
2994 .NOT.
PRESENT(mat_abdc))
THEN
2995 CALL integrate_set_3c( &
2996 param%par, potential_parameter, &
2997 la_min(iset), la_max(iset), &
2998 lb_min(jset), lb_max(jset), &
2999 lc_min(kset), lc_max(kset), &
3000 npgfa(iset), npgfb(jset), npgfc(kset), &
3001 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3002 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3005 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3006 offset_a_start, offset_b_start, offset_c_start, &
3007 0, 0, first_set - 1, &
3008 sphi_a, sphi_b, sphi_c, &
3010 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3012 coulomb_context=integral_context, &
3014force_a=force_a(ikind)%forces(:, atom_a), &
3015force_b=force_b(jkind)%forces(:, atom_b), &
3016force_c=force_c(kkind)%forces(:, atom_c), &
3017 do_symmetric=do_symmetric, &
3018 on_diagonal=iatom == jatom, &
3022 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3024 IF (
PRESENT(force_a) .AND. &
3025 PRESENT(force_b) .AND. &
3026 PRESENT(force_c) .AND. &
3027 .NOT.
PRESENT(pabc) .AND. &
3028 .NOT.
PRESENT(mat_dabc) .AND. &
3029 .NOT.
PRESENT(mat_adbc) .AND. &
3030 PRESENT(mat_abdc))
THEN
3031 CALL integrate_set_3c( &
3032 param%par, potential_parameter, &
3033 la_min(iset), la_max(iset), &
3034 lb_min(jset), lb_max(jset), &
3035 lc_min(kset), lc_max(kset), &
3036 npgfa(iset), npgfb(jset), npgfc(kset), &
3037 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3038 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3041 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3042 offset_a_start, offset_b_start, offset_c_start, &
3043 0, 0, first_set - 1, &
3044 sphi_a, sphi_b, sphi_c, &
3046 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3048 coulomb_context=integral_context, &
3050force_a=force_a(ikind)%forces(:, atom_a), &
3051force_b=force_b(jkind)%forces(:, atom_b), &
3052force_c=force_c(kkind)%forces(:, atom_c), &
3053 do_symmetric=do_symmetric, &
3054 on_diagonal=iatom == jatom, &
3058 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3060 IF (
PRESENT(force_a) .AND. &
3061 PRESENT(force_b) .AND. &
3062 PRESENT(force_c) .AND. &
3063 .NOT.
PRESENT(pabc) .AND. &
3064 .NOT.
PRESENT(mat_dabc) .AND. &
3065 PRESENT(mat_adbc) .AND. &
3066 .NOT.
PRESENT(mat_abdc))
THEN
3067 CALL integrate_set_3c( &
3068 param%par, potential_parameter, &
3069 la_min(iset), la_max(iset), &
3070 lb_min(jset), lb_max(jset), &
3071 lc_min(kset), lc_max(kset), &
3072 npgfa(iset), npgfb(jset), npgfc(kset), &
3073 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3074 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3077 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3078 offset_a_start, offset_b_start, offset_c_start, &
3079 0, 0, first_set - 1, &
3080 sphi_a, sphi_b, sphi_c, &
3082 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3084 coulomb_context=integral_context, &
3086force_a=force_a(ikind)%forces(:, atom_a), &
3087force_b=force_b(jkind)%forces(:, atom_b), &
3088force_c=force_c(kkind)%forces(:, atom_c), &
3089 do_symmetric=do_symmetric, &
3090 on_diagonal=iatom == jatom, &
3094 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3096 IF (
PRESENT(force_a) .AND. &
3097 PRESENT(force_b) .AND. &
3098 PRESENT(force_c) .AND. &
3099 .NOT.
PRESENT(pabc) .AND. &
3100 .NOT.
PRESENT(mat_dabc) .AND. &
3101 PRESENT(mat_adbc) .AND. &
3102 PRESENT(mat_abdc))
THEN
3103 CALL integrate_set_3c( &
3104 param%par, potential_parameter, &
3105 la_min(iset), la_max(iset), &
3106 lb_min(jset), lb_max(jset), &
3107 lc_min(kset), lc_max(kset), &
3108 npgfa(iset), npgfb(jset), npgfc(kset), &
3109 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3110 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3113 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3114 offset_a_start, offset_b_start, offset_c_start, &
3115 0, 0, first_set - 1, &
3116 sphi_a, sphi_b, sphi_c, &
3118 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3120 coulomb_context=integral_context, &
3122force_a=force_a(ikind)%forces(:, atom_a), &
3123force_b=force_b(jkind)%forces(:, atom_b), &
3124force_c=force_c(kkind)%forces(:, atom_c), &
3125 do_symmetric=do_symmetric, &
3126 on_diagonal=iatom == jatom, &
3130 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3132 IF (
PRESENT(force_a) .AND. &
3133 PRESENT(force_b) .AND. &
3134 PRESENT(force_c) .AND. &
3135 .NOT.
PRESENT(pabc) .AND. &
3136 PRESENT(mat_dabc) .AND. &
3137 .NOT.
PRESENT(mat_adbc) .AND. &
3138 .NOT.
PRESENT(mat_abdc))
THEN
3139 CALL integrate_set_3c( &
3140 param%par, potential_parameter, &
3141 la_min(iset), la_max(iset), &
3142 lb_min(jset), lb_max(jset), &
3143 lc_min(kset), lc_max(kset), &
3144 npgfa(iset), npgfb(jset), npgfc(kset), &
3145 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3146 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3149 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3150 offset_a_start, offset_b_start, offset_c_start, &
3151 0, 0, first_set - 1, &
3152 sphi_a, sphi_b, sphi_c, &
3154 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3156 coulomb_context=integral_context, &
3158force_a=force_a(ikind)%forces(:, atom_a), &
3159force_b=force_b(jkind)%forces(:, atom_b), &
3160force_c=force_c(kkind)%forces(:, atom_c), &
3161 do_symmetric=do_symmetric, &
3162 on_diagonal=iatom == jatom, &
3166 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3168 IF (
PRESENT(force_a) .AND. &
3169 PRESENT(force_b) .AND. &
3170 PRESENT(force_c) .AND. &
3171 .NOT.
PRESENT(pabc) .AND. &
3172 PRESENT(mat_dabc) .AND. &
3173 .NOT.
PRESENT(mat_adbc) .AND. &
3174 PRESENT(mat_abdc))
THEN
3175 CALL integrate_set_3c( &
3176 param%par, potential_parameter, &
3177 la_min(iset), la_max(iset), &
3178 lb_min(jset), lb_max(jset), &
3179 lc_min(kset), lc_max(kset), &
3180 npgfa(iset), npgfb(jset), npgfc(kset), &
3181 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3182 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3185 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3186 offset_a_start, offset_b_start, offset_c_start, &
3187 0, 0, first_set - 1, &
3188 sphi_a, sphi_b, sphi_c, &
3190 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3192 coulomb_context=integral_context, &
3194force_a=force_a(ikind)%forces(:, atom_a), &
3195force_b=force_b(jkind)%forces(:, atom_b), &
3196force_c=force_c(kkind)%forces(:, atom_c), &
3197 do_symmetric=do_symmetric, &
3198 on_diagonal=iatom == jatom, &
3202 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3204 IF (
PRESENT(force_a) .AND. &
3205 PRESENT(force_b) .AND. &
3206 PRESENT(force_c) .AND. &
3207 .NOT.
PRESENT(pabc) .AND. &
3208 PRESENT(mat_dabc) .AND. &
3209 PRESENT(mat_adbc) .AND. &
3210 .NOT.
PRESENT(mat_abdc))
THEN
3211 CALL integrate_set_3c( &
3212 param%par, potential_parameter, &
3213 la_min(iset), la_max(iset), &
3214 lb_min(jset), lb_max(jset), &
3215 lc_min(kset), lc_max(kset), &
3216 npgfa(iset), npgfb(jset), npgfc(kset), &
3217 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3218 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3221 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3222 offset_a_start, offset_b_start, offset_c_start, &
3223 0, 0, first_set - 1, &
3224 sphi_a, sphi_b, sphi_c, &
3226 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3228 coulomb_context=integral_context, &
3230force_a=force_a(ikind)%forces(:, atom_a), &
3231force_b=force_b(jkind)%forces(:, atom_b), &
3232force_c=force_c(kkind)%forces(:, atom_c), &
3233 do_symmetric=do_symmetric, &
3234 on_diagonal=iatom == jatom, &
3238 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3240 IF (
PRESENT(force_a) .AND. &
3241 PRESENT(force_b) .AND. &
3242 PRESENT(force_c) .AND. &
3243 .NOT.
PRESENT(pabc) .AND. &
3244 PRESENT(mat_dabc) .AND. &
3245 PRESENT(mat_adbc) .AND. &
3246 PRESENT(mat_abdc))
THEN
3247 CALL integrate_set_3c( &
3248 param%par, potential_parameter, &
3249 la_min(iset), la_max(iset), &
3250 lb_min(jset), lb_max(jset), &
3251 lc_min(kset), lc_max(kset), &
3252 npgfa(iset), npgfb(jset), npgfc(kset), &
3253 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3254 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3257 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3258 offset_a_start, offset_b_start, offset_c_start, &
3259 0, 0, first_set - 1, &
3260 sphi_a, sphi_b, sphi_c, &
3262 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3264 coulomb_context=integral_context, &
3266force_a=force_a(ikind)%forces(:, atom_a), &
3267force_b=force_b(jkind)%forces(:, atom_b), &
3268force_c=force_c(kkind)%forces(:, atom_c), &
3269 do_symmetric=do_symmetric, &
3270 on_diagonal=iatom == jatom, &
3274 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3276 IF (.NOT.
PRESENT(force_a) .AND. &
3277 .NOT.
PRESENT(force_b) .AND. &
3278 .NOT.
PRESENT(force_c) .AND. &
3279 PRESENT(pabc) .AND. &
3280 .NOT.
PRESENT(mat_dabc) .AND. &
3281 .NOT.
PRESENT(mat_adbc) .AND. &
3282 .NOT.
PRESENT(mat_abdc))
THEN
3283 CALL integrate_set_3c( &
3284 param%par, potential_parameter, &
3285 la_min(iset), la_max(iset), &
3286 lb_min(jset), lb_max(jset), &
3287 lc_min(kset), lc_max(kset), &
3288 npgfa(iset), npgfb(jset), npgfc(kset), &
3289 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3290 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3293 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3294 offset_a_start, offset_b_start, offset_c_start, &
3295 0, 0, first_set - 1, &
3296 sphi_a, sphi_b, sphi_c, &
3298 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3300 coulomb_context=integral_context, &
3305 do_symmetric=do_symmetric, &
3306 on_diagonal=iatom == jatom, &
3310 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3312 IF (.NOT.
PRESENT(force_a) .AND. &
3313 .NOT.
PRESENT(force_b) .AND. &
3314 .NOT.
PRESENT(force_c) .AND. &
3315 PRESENT(pabc) .AND. &
3316 .NOT.
PRESENT(mat_dabc) .AND. &
3317 .NOT.
PRESENT(mat_adbc) .AND. &
3318 PRESENT(mat_abdc))
THEN
3319 CALL integrate_set_3c( &
3320 param%par, potential_parameter, &
3321 la_min(iset), la_max(iset), &
3322 lb_min(jset), lb_max(jset), &
3323 lc_min(kset), lc_max(kset), &
3324 npgfa(iset), npgfb(jset), npgfc(kset), &
3325 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3326 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3329 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3330 offset_a_start, offset_b_start, offset_c_start, &
3331 0, 0, first_set - 1, &
3332 sphi_a, sphi_b, sphi_c, &
3334 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3336 coulomb_context=integral_context, &
3341 do_symmetric=do_symmetric, &
3342 on_diagonal=iatom == jatom, &
3346 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3348 IF (.NOT.
PRESENT(force_a) .AND. &
3349 .NOT.
PRESENT(force_b) .AND. &
3350 .NOT.
PRESENT(force_c) .AND. &
3351 PRESENT(pabc) .AND. &
3352 .NOT.
PRESENT(mat_dabc) .AND. &
3353 PRESENT(mat_adbc) .AND. &
3354 .NOT.
PRESENT(mat_abdc))
THEN
3355 CALL integrate_set_3c( &
3356 param%par, potential_parameter, &
3357 la_min(iset), la_max(iset), &
3358 lb_min(jset), lb_max(jset), &
3359 lc_min(kset), lc_max(kset), &
3360 npgfa(iset), npgfb(jset), npgfc(kset), &
3361 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3362 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3365 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3366 offset_a_start, offset_b_start, offset_c_start, &
3367 0, 0, first_set - 1, &
3368 sphi_a, sphi_b, sphi_c, &
3370 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3372 coulomb_context=integral_context, &
3377 do_symmetric=do_symmetric, &
3378 on_diagonal=iatom == jatom, &
3382 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3384 IF (.NOT.
PRESENT(force_a) .AND. &
3385 .NOT.
PRESENT(force_b) .AND. &
3386 .NOT.
PRESENT(force_c) .AND. &
3387 PRESENT(pabc) .AND. &
3388 .NOT.
PRESENT(mat_dabc) .AND. &
3389 PRESENT(mat_adbc) .AND. &
3390 PRESENT(mat_abdc))
THEN
3391 CALL integrate_set_3c( &
3392 param%par, potential_parameter, &
3393 la_min(iset), la_max(iset), &
3394 lb_min(jset), lb_max(jset), &
3395 lc_min(kset), lc_max(kset), &
3396 npgfa(iset), npgfb(jset), npgfc(kset), &
3397 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3398 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3401 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3402 offset_a_start, offset_b_start, offset_c_start, &
3403 0, 0, first_set - 1, &
3404 sphi_a, sphi_b, sphi_c, &
3406 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3408 coulomb_context=integral_context, &
3413 do_symmetric=do_symmetric, &
3414 on_diagonal=iatom == jatom, &
3418 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3420 IF (.NOT.
PRESENT(force_a) .AND. &
3421 .NOT.
PRESENT(force_b) .AND. &
3422 .NOT.
PRESENT(force_c) .AND. &
3423 PRESENT(pabc) .AND. &
3424 PRESENT(mat_dabc) .AND. &
3425 .NOT.
PRESENT(mat_adbc) .AND. &
3426 .NOT.
PRESENT(mat_abdc))
THEN
3427 CALL integrate_set_3c( &
3428 param%par, potential_parameter, &
3429 la_min(iset), la_max(iset), &
3430 lb_min(jset), lb_max(jset), &
3431 lc_min(kset), lc_max(kset), &
3432 npgfa(iset), npgfb(jset), npgfc(kset), &
3433 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3434 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3437 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3438 offset_a_start, offset_b_start, offset_c_start, &
3439 0, 0, first_set - 1, &
3440 sphi_a, sphi_b, sphi_c, &
3442 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3444 coulomb_context=integral_context, &
3449 do_symmetric=do_symmetric, &
3450 on_diagonal=iatom == jatom, &
3454 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3456 IF (.NOT.
PRESENT(force_a) .AND. &
3457 .NOT.
PRESENT(force_b) .AND. &
3458 .NOT.
PRESENT(force_c) .AND. &
3459 PRESENT(pabc) .AND. &
3460 PRESENT(mat_dabc) .AND. &
3461 .NOT.
PRESENT(mat_adbc) .AND. &
3462 PRESENT(mat_abdc))
THEN
3463 CALL integrate_set_3c( &
3464 param%par, potential_parameter, &
3465 la_min(iset), la_max(iset), &
3466 lb_min(jset), lb_max(jset), &
3467 lc_min(kset), lc_max(kset), &
3468 npgfa(iset), npgfb(jset), npgfc(kset), &
3469 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3470 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3473 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3474 offset_a_start, offset_b_start, offset_c_start, &
3475 0, 0, first_set - 1, &
3476 sphi_a, sphi_b, sphi_c, &
3478 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3480 coulomb_context=integral_context, &
3485 do_symmetric=do_symmetric, &
3486 on_diagonal=iatom == jatom, &
3490 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3492 IF (.NOT.
PRESENT(force_a) .AND. &
3493 .NOT.
PRESENT(force_b) .AND. &
3494 .NOT.
PRESENT(force_c) .AND. &
3495 PRESENT(pabc) .AND. &
3496 PRESENT(mat_dabc) .AND. &
3497 PRESENT(mat_adbc) .AND. &
3498 .NOT.
PRESENT(mat_abdc))
THEN
3499 CALL integrate_set_3c( &
3500 param%par, potential_parameter, &
3501 la_min(iset), la_max(iset), &
3502 lb_min(jset), lb_max(jset), &
3503 lc_min(kset), lc_max(kset), &
3504 npgfa(iset), npgfb(jset), npgfc(kset), &
3505 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3506 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3509 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3510 offset_a_start, offset_b_start, offset_c_start, &
3511 0, 0, first_set - 1, &
3512 sphi_a, sphi_b, sphi_c, &
3514 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3516 coulomb_context=integral_context, &
3521 do_symmetric=do_symmetric, &
3522 on_diagonal=iatom == jatom, &
3526 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3528 IF (.NOT.
PRESENT(force_a) .AND. &
3529 .NOT.
PRESENT(force_b) .AND. &
3530 .NOT.
PRESENT(force_c) .AND. &
3531 PRESENT(pabc) .AND. &
3532 PRESENT(mat_dabc) .AND. &
3533 PRESENT(mat_adbc) .AND. &
3534 PRESENT(mat_abdc))
THEN
3535 CALL integrate_set_3c( &
3536 param%par, potential_parameter, &
3537 la_min(iset), la_max(iset), &
3538 lb_min(jset), lb_max(jset), &
3539 lc_min(kset), lc_max(kset), &
3540 npgfa(iset), npgfb(jset), npgfc(kset), &
3541 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3542 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3545 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3546 offset_a_start, offset_b_start, offset_c_start, &
3547 0, 0, first_set - 1, &
3548 sphi_a, sphi_b, sphi_c, &
3550 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3552 coulomb_context=integral_context, &
3557 do_symmetric=do_symmetric, &
3558 on_diagonal=iatom == jatom, &
3562 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3564 IF (.NOT.
PRESENT(force_a) .AND. &
3565 .NOT.
PRESENT(force_b) .AND. &
3566 PRESENT(force_c) .AND. &
3567 PRESENT(pabc) .AND. &
3568 .NOT.
PRESENT(mat_dabc) .AND. &
3569 .NOT.
PRESENT(mat_adbc) .AND. &
3570 .NOT.
PRESENT(mat_abdc))
THEN
3571 CALL integrate_set_3c( &
3572 param%par, potential_parameter, &
3573 la_min(iset), la_max(iset), &
3574 lb_min(jset), lb_max(jset), &
3575 lc_min(kset), lc_max(kset), &
3576 npgfa(iset), npgfb(jset), npgfc(kset), &
3577 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3578 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3581 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3582 offset_a_start, offset_b_start, offset_c_start, &
3583 0, 0, first_set - 1, &
3584 sphi_a, sphi_b, sphi_c, &
3586 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3588 coulomb_context=integral_context, &
3592force_c=force_c(kkind)%forces(:, atom_c), &
3593 do_symmetric=do_symmetric, &
3594 on_diagonal=iatom == jatom, &
3598 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3600 IF (.NOT.
PRESENT(force_a) .AND. &
3601 .NOT.
PRESENT(force_b) .AND. &
3602 PRESENT(force_c) .AND. &
3603 PRESENT(pabc) .AND. &
3604 .NOT.
PRESENT(mat_dabc) .AND. &
3605 .NOT.
PRESENT(mat_adbc) .AND. &
3606 PRESENT(mat_abdc))
THEN
3607 CALL integrate_set_3c( &
3608 param%par, potential_parameter, &
3609 la_min(iset), la_max(iset), &
3610 lb_min(jset), lb_max(jset), &
3611 lc_min(kset), lc_max(kset), &
3612 npgfa(iset), npgfb(jset), npgfc(kset), &
3613 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3614 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3617 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3618 offset_a_start, offset_b_start, offset_c_start, &
3619 0, 0, first_set - 1, &
3620 sphi_a, sphi_b, sphi_c, &
3622 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3624 coulomb_context=integral_context, &
3628force_c=force_c(kkind)%forces(:, atom_c), &
3629 do_symmetric=do_symmetric, &
3630 on_diagonal=iatom == jatom, &
3634 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3636 IF (.NOT.
PRESENT(force_a) .AND. &
3637 .NOT.
PRESENT(force_b) .AND. &
3638 PRESENT(force_c) .AND. &
3639 PRESENT(pabc) .AND. &
3640 .NOT.
PRESENT(mat_dabc) .AND. &
3641 PRESENT(mat_adbc) .AND. &
3642 .NOT.
PRESENT(mat_abdc))
THEN
3643 CALL integrate_set_3c( &
3644 param%par, potential_parameter, &
3645 la_min(iset), la_max(iset), &
3646 lb_min(jset), lb_max(jset), &
3647 lc_min(kset), lc_max(kset), &
3648 npgfa(iset), npgfb(jset), npgfc(kset), &
3649 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3650 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3653 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3654 offset_a_start, offset_b_start, offset_c_start, &
3655 0, 0, first_set - 1, &
3656 sphi_a, sphi_b, sphi_c, &
3658 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3660 coulomb_context=integral_context, &
3664force_c=force_c(kkind)%forces(:, atom_c), &
3665 do_symmetric=do_symmetric, &
3666 on_diagonal=iatom == jatom, &
3670 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3672 IF (.NOT.
PRESENT(force_a) .AND. &
3673 .NOT.
PRESENT(force_b) .AND. &
3674 PRESENT(force_c) .AND. &
3675 PRESENT(pabc) .AND. &
3676 .NOT.
PRESENT(mat_dabc) .AND. &
3677 PRESENT(mat_adbc) .AND. &
3678 PRESENT(mat_abdc))
THEN
3679 CALL integrate_set_3c( &
3680 param%par, potential_parameter, &
3681 la_min(iset), la_max(iset), &
3682 lb_min(jset), lb_max(jset), &
3683 lc_min(kset), lc_max(kset), &
3684 npgfa(iset), npgfb(jset), npgfc(kset), &
3685 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3686 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3689 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3690 offset_a_start, offset_b_start, offset_c_start, &
3691 0, 0, first_set - 1, &
3692 sphi_a, sphi_b, sphi_c, &
3694 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3696 coulomb_context=integral_context, &
3700force_c=force_c(kkind)%forces(:, atom_c), &
3701 do_symmetric=do_symmetric, &
3702 on_diagonal=iatom == jatom, &
3706 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3708 IF (.NOT.
PRESENT(force_a) .AND. &
3709 .NOT.
PRESENT(force_b) .AND. &
3710 PRESENT(force_c) .AND. &
3711 PRESENT(pabc) .AND. &
3712 PRESENT(mat_dabc) .AND. &
3713 .NOT.
PRESENT(mat_adbc) .AND. &
3714 .NOT.
PRESENT(mat_abdc))
THEN
3715 CALL integrate_set_3c( &
3716 param%par, potential_parameter, &
3717 la_min(iset), la_max(iset), &
3718 lb_min(jset), lb_max(jset), &
3719 lc_min(kset), lc_max(kset), &
3720 npgfa(iset), npgfb(jset), npgfc(kset), &
3721 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3722 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3725 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3726 offset_a_start, offset_b_start, offset_c_start, &
3727 0, 0, first_set - 1, &
3728 sphi_a, sphi_b, sphi_c, &
3730 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3732 coulomb_context=integral_context, &
3736force_c=force_c(kkind)%forces(:, atom_c), &
3737 do_symmetric=do_symmetric, &
3738 on_diagonal=iatom == jatom, &
3742 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3744 IF (.NOT.
PRESENT(force_a) .AND. &
3745 .NOT.
PRESENT(force_b) .AND. &
3746 PRESENT(force_c) .AND. &
3747 PRESENT(pabc) .AND. &
3748 PRESENT(mat_dabc) .AND. &
3749 .NOT.
PRESENT(mat_adbc) .AND. &
3750 PRESENT(mat_abdc))
THEN
3751 CALL integrate_set_3c( &
3752 param%par, potential_parameter, &
3753 la_min(iset), la_max(iset), &
3754 lb_min(jset), lb_max(jset), &
3755 lc_min(kset), lc_max(kset), &
3756 npgfa(iset), npgfb(jset), npgfc(kset), &
3757 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3758 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3761 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3762 offset_a_start, offset_b_start, offset_c_start, &
3763 0, 0, first_set - 1, &
3764 sphi_a, sphi_b, sphi_c, &
3766 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3768 coulomb_context=integral_context, &
3772force_c=force_c(kkind)%forces(:, atom_c), &
3773 do_symmetric=do_symmetric, &
3774 on_diagonal=iatom == jatom, &
3778 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3780 IF (.NOT.
PRESENT(force_a) .AND. &
3781 .NOT.
PRESENT(force_b) .AND. &
3782 PRESENT(force_c) .AND. &
3783 PRESENT(pabc) .AND. &
3784 PRESENT(mat_dabc) .AND. &
3785 PRESENT(mat_adbc) .AND. &
3786 .NOT.
PRESENT(mat_abdc))
THEN
3787 CALL integrate_set_3c( &
3788 param%par, potential_parameter, &
3789 la_min(iset), la_max(iset), &
3790 lb_min(jset), lb_max(jset), &
3791 lc_min(kset), lc_max(kset), &
3792 npgfa(iset), npgfb(jset), npgfc(kset), &
3793 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3794 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3797 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3798 offset_a_start, offset_b_start, offset_c_start, &
3799 0, 0, first_set - 1, &
3800 sphi_a, sphi_b, sphi_c, &
3802 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3804 coulomb_context=integral_context, &
3808force_c=force_c(kkind)%forces(:, atom_c), &
3809 do_symmetric=do_symmetric, &
3810 on_diagonal=iatom == jatom, &
3814 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3816 IF (.NOT.
PRESENT(force_a) .AND. &
3817 .NOT.
PRESENT(force_b) .AND. &
3818 PRESENT(force_c) .AND. &
3819 PRESENT(pabc) .AND. &
3820 PRESENT(mat_dabc) .AND. &
3821 PRESENT(mat_adbc) .AND. &
3822 PRESENT(mat_abdc))
THEN
3823 CALL integrate_set_3c( &
3824 param%par, potential_parameter, &
3825 la_min(iset), la_max(iset), &
3826 lb_min(jset), lb_max(jset), &
3827 lc_min(kset), lc_max(kset), &
3828 npgfa(iset), npgfb(jset), npgfc(kset), &
3829 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3830 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3833 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3834 offset_a_start, offset_b_start, offset_c_start, &
3835 0, 0, first_set - 1, &
3836 sphi_a, sphi_b, sphi_c, &
3838 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3840 coulomb_context=integral_context, &
3844force_c=force_c(kkind)%forces(:, atom_c), &
3845 do_symmetric=do_symmetric, &
3846 on_diagonal=iatom == jatom, &
3850 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3852 IF (.NOT.
PRESENT(force_a) .AND. &
3853 PRESENT(force_b) .AND. &
3854 .NOT.
PRESENT(force_c) .AND. &
3855 PRESENT(pabc) .AND. &
3856 .NOT.
PRESENT(mat_dabc) .AND. &
3857 .NOT.
PRESENT(mat_adbc) .AND. &
3858 .NOT.
PRESENT(mat_abdc))
THEN
3859 CALL integrate_set_3c( &
3860 param%par, potential_parameter, &
3861 la_min(iset), la_max(iset), &
3862 lb_min(jset), lb_max(jset), &
3863 lc_min(kset), lc_max(kset), &
3864 npgfa(iset), npgfb(jset), npgfc(kset), &
3865 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3866 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3869 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3870 offset_a_start, offset_b_start, offset_c_start, &
3871 0, 0, first_set - 1, &
3872 sphi_a, sphi_b, sphi_c, &
3874 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3876 coulomb_context=integral_context, &
3879force_b=force_b(jkind)%forces(:, atom_b), &
3881 do_symmetric=do_symmetric, &
3882 on_diagonal=iatom == jatom, &
3886 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3888 IF (.NOT.
PRESENT(force_a) .AND. &
3889 PRESENT(force_b) .AND. &
3890 .NOT.
PRESENT(force_c) .AND. &
3891 PRESENT(pabc) .AND. &
3892 .NOT.
PRESENT(mat_dabc) .AND. &
3893 .NOT.
PRESENT(mat_adbc) .AND. &
3894 PRESENT(mat_abdc))
THEN
3895 CALL integrate_set_3c( &
3896 param%par, potential_parameter, &
3897 la_min(iset), la_max(iset), &
3898 lb_min(jset), lb_max(jset), &
3899 lc_min(kset), lc_max(kset), &
3900 npgfa(iset), npgfb(jset), npgfc(kset), &
3901 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3902 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3905 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3906 offset_a_start, offset_b_start, offset_c_start, &
3907 0, 0, first_set - 1, &
3908 sphi_a, sphi_b, sphi_c, &
3910 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3912 coulomb_context=integral_context, &
3915force_b=force_b(jkind)%forces(:, atom_b), &
3917 do_symmetric=do_symmetric, &
3918 on_diagonal=iatom == jatom, &
3922 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3924 IF (.NOT.
PRESENT(force_a) .AND. &
3925 PRESENT(force_b) .AND. &
3926 .NOT.
PRESENT(force_c) .AND. &
3927 PRESENT(pabc) .AND. &
3928 .NOT.
PRESENT(mat_dabc) .AND. &
3929 PRESENT(mat_adbc) .AND. &
3930 .NOT.
PRESENT(mat_abdc))
THEN
3931 CALL integrate_set_3c( &
3932 param%par, potential_parameter, &
3933 la_min(iset), la_max(iset), &
3934 lb_min(jset), lb_max(jset), &
3935 lc_min(kset), lc_max(kset), &
3936 npgfa(iset), npgfb(jset), npgfc(kset), &
3937 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3938 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3941 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3942 offset_a_start, offset_b_start, offset_c_start, &
3943 0, 0, first_set - 1, &
3944 sphi_a, sphi_b, sphi_c, &
3946 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3948 coulomb_context=integral_context, &
3951force_b=force_b(jkind)%forces(:, atom_b), &
3953 do_symmetric=do_symmetric, &
3954 on_diagonal=iatom == jatom, &
3958 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3960 IF (.NOT.
PRESENT(force_a) .AND. &
3961 PRESENT(force_b) .AND. &
3962 .NOT.
PRESENT(force_c) .AND. &
3963 PRESENT(pabc) .AND. &
3964 .NOT.
PRESENT(mat_dabc) .AND. &
3965 PRESENT(mat_adbc) .AND. &
3966 PRESENT(mat_abdc))
THEN
3967 CALL integrate_set_3c( &
3968 param%par, potential_parameter, &
3969 la_min(iset), la_max(iset), &
3970 lb_min(jset), lb_max(jset), &
3971 lc_min(kset), lc_max(kset), &
3972 npgfa(iset), npgfb(jset), npgfc(kset), &
3973 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
3974 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
3977 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
3978 offset_a_start, offset_b_start, offset_c_start, &
3979 0, 0, first_set - 1, &
3980 sphi_a, sphi_b, sphi_c, &
3982 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
3984 coulomb_context=integral_context, &
3987force_b=force_b(jkind)%forces(:, atom_b), &
3989 do_symmetric=do_symmetric, &
3990 on_diagonal=iatom == jatom, &
3994 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
3996 IF (.NOT.
PRESENT(force_a) .AND. &
3997 PRESENT(force_b) .AND. &
3998 .NOT.
PRESENT(force_c) .AND. &
3999 PRESENT(pabc) .AND. &
4000 PRESENT(mat_dabc) .AND. &
4001 .NOT.
PRESENT(mat_adbc) .AND. &
4002 .NOT.
PRESENT(mat_abdc))
THEN
4003 CALL integrate_set_3c( &
4004 param%par, potential_parameter, &
4005 la_min(iset), la_max(iset), &
4006 lb_min(jset), lb_max(jset), &
4007 lc_min(kset), lc_max(kset), &
4008 npgfa(iset), npgfb(jset), npgfc(kset), &
4009 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4010 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4013 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4014 offset_a_start, offset_b_start, offset_c_start, &
4015 0, 0, first_set - 1, &
4016 sphi_a, sphi_b, sphi_c, &
4018 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4020 coulomb_context=integral_context, &
4023force_b=force_b(jkind)%forces(:, atom_b), &
4025 do_symmetric=do_symmetric, &
4026 on_diagonal=iatom == jatom, &
4030 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4032 IF (.NOT.
PRESENT(force_a) .AND. &
4033 PRESENT(force_b) .AND. &
4034 .NOT.
PRESENT(force_c) .AND. &
4035 PRESENT(pabc) .AND. &
4036 PRESENT(mat_dabc) .AND. &
4037 .NOT.
PRESENT(mat_adbc) .AND. &
4038 PRESENT(mat_abdc))
THEN
4039 CALL integrate_set_3c( &
4040 param%par, potential_parameter, &
4041 la_min(iset), la_max(iset), &
4042 lb_min(jset), lb_max(jset), &
4043 lc_min(kset), lc_max(kset), &
4044 npgfa(iset), npgfb(jset), npgfc(kset), &
4045 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4046 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4049 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4050 offset_a_start, offset_b_start, offset_c_start, &
4051 0, 0, first_set - 1, &
4052 sphi_a, sphi_b, sphi_c, &
4054 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4056 coulomb_context=integral_context, &
4059force_b=force_b(jkind)%forces(:, atom_b), &
4061 do_symmetric=do_symmetric, &
4062 on_diagonal=iatom == jatom, &
4066 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4068 IF (.NOT.
PRESENT(force_a) .AND. &
4069 PRESENT(force_b) .AND. &
4070 .NOT.
PRESENT(force_c) .AND. &
4071 PRESENT(pabc) .AND. &
4072 PRESENT(mat_dabc) .AND. &
4073 PRESENT(mat_adbc) .AND. &
4074 .NOT.
PRESENT(mat_abdc))
THEN
4075 CALL integrate_set_3c( &
4076 param%par, potential_parameter, &
4077 la_min(iset), la_max(iset), &
4078 lb_min(jset), lb_max(jset), &
4079 lc_min(kset), lc_max(kset), &
4080 npgfa(iset), npgfb(jset), npgfc(kset), &
4081 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4082 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4085 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4086 offset_a_start, offset_b_start, offset_c_start, &
4087 0, 0, first_set - 1, &
4088 sphi_a, sphi_b, sphi_c, &
4090 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4092 coulomb_context=integral_context, &
4095force_b=force_b(jkind)%forces(:, atom_b), &
4097 do_symmetric=do_symmetric, &
4098 on_diagonal=iatom == jatom, &
4102 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4104 IF (.NOT.
PRESENT(force_a) .AND. &
4105 PRESENT(force_b) .AND. &
4106 .NOT.
PRESENT(force_c) .AND. &
4107 PRESENT(pabc) .AND. &
4108 PRESENT(mat_dabc) .AND. &
4109 PRESENT(mat_adbc) .AND. &
4110 PRESENT(mat_abdc))
THEN
4111 CALL integrate_set_3c( &
4112 param%par, potential_parameter, &
4113 la_min(iset), la_max(iset), &
4114 lb_min(jset), lb_max(jset), &
4115 lc_min(kset), lc_max(kset), &
4116 npgfa(iset), npgfb(jset), npgfc(kset), &
4117 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4118 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4121 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4122 offset_a_start, offset_b_start, offset_c_start, &
4123 0, 0, first_set - 1, &
4124 sphi_a, sphi_b, sphi_c, &
4126 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4128 coulomb_context=integral_context, &
4131force_b=force_b(jkind)%forces(:, atom_b), &
4133 do_symmetric=do_symmetric, &
4134 on_diagonal=iatom == jatom, &
4138 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4140 IF (.NOT.
PRESENT(force_a) .AND. &
4141 PRESENT(force_b) .AND. &
4142 PRESENT(force_c) .AND. &
4143 PRESENT(pabc) .AND. &
4144 .NOT.
PRESENT(mat_dabc) .AND. &
4145 .NOT.
PRESENT(mat_adbc) .AND. &
4146 .NOT.
PRESENT(mat_abdc))
THEN
4147 CALL integrate_set_3c( &
4148 param%par, potential_parameter, &
4149 la_min(iset), la_max(iset), &
4150 lb_min(jset), lb_max(jset), &
4151 lc_min(kset), lc_max(kset), &
4152 npgfa(iset), npgfb(jset), npgfc(kset), &
4153 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4154 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4157 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4158 offset_a_start, offset_b_start, offset_c_start, &
4159 0, 0, first_set - 1, &
4160 sphi_a, sphi_b, sphi_c, &
4162 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4164 coulomb_context=integral_context, &
4167force_b=force_b(jkind)%forces(:, atom_b), &
4168force_c=force_c(kkind)%forces(:, atom_c), &
4169 do_symmetric=do_symmetric, &
4170 on_diagonal=iatom == jatom, &
4174 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4176 IF (.NOT.
PRESENT(force_a) .AND. &
4177 PRESENT(force_b) .AND. &
4178 PRESENT(force_c) .AND. &
4179 PRESENT(pabc) .AND. &
4180 .NOT.
PRESENT(mat_dabc) .AND. &
4181 .NOT.
PRESENT(mat_adbc) .AND. &
4182 PRESENT(mat_abdc))
THEN
4183 CALL integrate_set_3c( &
4184 param%par, potential_parameter, &
4185 la_min(iset), la_max(iset), &
4186 lb_min(jset), lb_max(jset), &
4187 lc_min(kset), lc_max(kset), &
4188 npgfa(iset), npgfb(jset), npgfc(kset), &
4189 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4190 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4193 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4194 offset_a_start, offset_b_start, offset_c_start, &
4195 0, 0, first_set - 1, &
4196 sphi_a, sphi_b, sphi_c, &
4198 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4200 coulomb_context=integral_context, &
4203force_b=force_b(jkind)%forces(:, atom_b), &
4204force_c=force_c(kkind)%forces(:, atom_c), &
4205 do_symmetric=do_symmetric, &
4206 on_diagonal=iatom == jatom, &
4210 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4212 IF (.NOT.
PRESENT(force_a) .AND. &
4213 PRESENT(force_b) .AND. &
4214 PRESENT(force_c) .AND. &
4215 PRESENT(pabc) .AND. &
4216 .NOT.
PRESENT(mat_dabc) .AND. &
4217 PRESENT(mat_adbc) .AND. &
4218 .NOT.
PRESENT(mat_abdc))
THEN
4219 CALL integrate_set_3c( &
4220 param%par, potential_parameter, &
4221 la_min(iset), la_max(iset), &
4222 lb_min(jset), lb_max(jset), &
4223 lc_min(kset), lc_max(kset), &
4224 npgfa(iset), npgfb(jset), npgfc(kset), &
4225 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4226 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4229 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4230 offset_a_start, offset_b_start, offset_c_start, &
4231 0, 0, first_set - 1, &
4232 sphi_a, sphi_b, sphi_c, &
4234 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4236 coulomb_context=integral_context, &
4239force_b=force_b(jkind)%forces(:, atom_b), &
4240force_c=force_c(kkind)%forces(:, atom_c), &
4241 do_symmetric=do_symmetric, &
4242 on_diagonal=iatom == jatom, &
4246 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4248 IF (.NOT.
PRESENT(force_a) .AND. &
4249 PRESENT(force_b) .AND. &
4250 PRESENT(force_c) .AND. &
4251 PRESENT(pabc) .AND. &
4252 .NOT.
PRESENT(mat_dabc) .AND. &
4253 PRESENT(mat_adbc) .AND. &
4254 PRESENT(mat_abdc))
THEN
4255 CALL integrate_set_3c( &
4256 param%par, potential_parameter, &
4257 la_min(iset), la_max(iset), &
4258 lb_min(jset), lb_max(jset), &
4259 lc_min(kset), lc_max(kset), &
4260 npgfa(iset), npgfb(jset), npgfc(kset), &
4261 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4262 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4265 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4266 offset_a_start, offset_b_start, offset_c_start, &
4267 0, 0, first_set - 1, &
4268 sphi_a, sphi_b, sphi_c, &
4270 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4272 coulomb_context=integral_context, &
4275force_b=force_b(jkind)%forces(:, atom_b), &
4276force_c=force_c(kkind)%forces(:, atom_c), &
4277 do_symmetric=do_symmetric, &
4278 on_diagonal=iatom == jatom, &
4282 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4284 IF (.NOT.
PRESENT(force_a) .AND. &
4285 PRESENT(force_b) .AND. &
4286 PRESENT(force_c) .AND. &
4287 PRESENT(pabc) .AND. &
4288 PRESENT(mat_dabc) .AND. &
4289 .NOT.
PRESENT(mat_adbc) .AND. &
4290 .NOT.
PRESENT(mat_abdc))
THEN
4291 CALL integrate_set_3c( &
4292 param%par, potential_parameter, &
4293 la_min(iset), la_max(iset), &
4294 lb_min(jset), lb_max(jset), &
4295 lc_min(kset), lc_max(kset), &
4296 npgfa(iset), npgfb(jset), npgfc(kset), &
4297 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4298 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4301 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4302 offset_a_start, offset_b_start, offset_c_start, &
4303 0, 0, first_set - 1, &
4304 sphi_a, sphi_b, sphi_c, &
4306 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4308 coulomb_context=integral_context, &
4311force_b=force_b(jkind)%forces(:, atom_b), &
4312force_c=force_c(kkind)%forces(:, atom_c), &
4313 do_symmetric=do_symmetric, &
4314 on_diagonal=iatom == jatom, &
4318 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4320 IF (.NOT.
PRESENT(force_a) .AND. &
4321 PRESENT(force_b) .AND. &
4322 PRESENT(force_c) .AND. &
4323 PRESENT(pabc) .AND. &
4324 PRESENT(mat_dabc) .AND. &
4325 .NOT.
PRESENT(mat_adbc) .AND. &
4326 PRESENT(mat_abdc))
THEN
4327 CALL integrate_set_3c( &
4328 param%par, potential_parameter, &
4329 la_min(iset), la_max(iset), &
4330 lb_min(jset), lb_max(jset), &
4331 lc_min(kset), lc_max(kset), &
4332 npgfa(iset), npgfb(jset), npgfc(kset), &
4333 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4334 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4337 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4338 offset_a_start, offset_b_start, offset_c_start, &
4339 0, 0, first_set - 1, &
4340 sphi_a, sphi_b, sphi_c, &
4342 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4344 coulomb_context=integral_context, &
4347force_b=force_b(jkind)%forces(:, atom_b), &
4348force_c=force_c(kkind)%forces(:, atom_c), &
4349 do_symmetric=do_symmetric, &
4350 on_diagonal=iatom == jatom, &
4354 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4356 IF (.NOT.
PRESENT(force_a) .AND. &
4357 PRESENT(force_b) .AND. &
4358 PRESENT(force_c) .AND. &
4359 PRESENT(pabc) .AND. &
4360 PRESENT(mat_dabc) .AND. &
4361 PRESENT(mat_adbc) .AND. &
4362 .NOT.
PRESENT(mat_abdc))
THEN
4363 CALL integrate_set_3c( &
4364 param%par, potential_parameter, &
4365 la_min(iset), la_max(iset), &
4366 lb_min(jset), lb_max(jset), &
4367 lc_min(kset), lc_max(kset), &
4368 npgfa(iset), npgfb(jset), npgfc(kset), &
4369 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4370 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4373 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4374 offset_a_start, offset_b_start, offset_c_start, &
4375 0, 0, first_set - 1, &
4376 sphi_a, sphi_b, sphi_c, &
4378 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4380 coulomb_context=integral_context, &
4383force_b=force_b(jkind)%forces(:, atom_b), &
4384force_c=force_c(kkind)%forces(:, atom_c), &
4385 do_symmetric=do_symmetric, &
4386 on_diagonal=iatom == jatom, &
4390 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4392 IF (.NOT.
PRESENT(force_a) .AND. &
4393 PRESENT(force_b) .AND. &
4394 PRESENT(force_c) .AND. &
4395 PRESENT(pabc) .AND. &
4396 PRESENT(mat_dabc) .AND. &
4397 PRESENT(mat_adbc) .AND. &
4398 PRESENT(mat_abdc))
THEN
4399 CALL integrate_set_3c( &
4400 param%par, potential_parameter, &
4401 la_min(iset), la_max(iset), &
4402 lb_min(jset), lb_max(jset), &
4403 lc_min(kset), lc_max(kset), &
4404 npgfa(iset), npgfb(jset), npgfc(kset), &
4405 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4406 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4409 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4410 offset_a_start, offset_b_start, offset_c_start, &
4411 0, 0, first_set - 1, &
4412 sphi_a, sphi_b, sphi_c, &
4414 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4416 coulomb_context=integral_context, &
4419force_b=force_b(jkind)%forces(:, atom_b), &
4420force_c=force_c(kkind)%forces(:, atom_c), &
4421 do_symmetric=do_symmetric, &
4422 on_diagonal=iatom == jatom, &
4426 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4428 IF (
PRESENT(force_a) .AND. &
4429 .NOT.
PRESENT(force_b) .AND. &
4430 .NOT.
PRESENT(force_c) .AND. &
4431 PRESENT(pabc) .AND. &
4432 .NOT.
PRESENT(mat_dabc) .AND. &
4433 .NOT.
PRESENT(mat_adbc) .AND. &
4434 .NOT.
PRESENT(mat_abdc))
THEN
4435 CALL integrate_set_3c( &
4436 param%par, potential_parameter, &
4437 la_min(iset), la_max(iset), &
4438 lb_min(jset), lb_max(jset), &
4439 lc_min(kset), lc_max(kset), &
4440 npgfa(iset), npgfb(jset), npgfc(kset), &
4441 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4442 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4445 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4446 offset_a_start, offset_b_start, offset_c_start, &
4447 0, 0, first_set - 1, &
4448 sphi_a, sphi_b, sphi_c, &
4450 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4452 coulomb_context=integral_context, &
4454force_a=force_a(ikind)%forces(:, atom_a), &
4457 do_symmetric=do_symmetric, &
4458 on_diagonal=iatom == jatom, &
4462 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4464 IF (
PRESENT(force_a) .AND. &
4465 .NOT.
PRESENT(force_b) .AND. &
4466 .NOT.
PRESENT(force_c) .AND. &
4467 PRESENT(pabc) .AND. &
4468 .NOT.
PRESENT(mat_dabc) .AND. &
4469 .NOT.
PRESENT(mat_adbc) .AND. &
4470 PRESENT(mat_abdc))
THEN
4471 CALL integrate_set_3c( &
4472 param%par, potential_parameter, &
4473 la_min(iset), la_max(iset), &
4474 lb_min(jset), lb_max(jset), &
4475 lc_min(kset), lc_max(kset), &
4476 npgfa(iset), npgfb(jset), npgfc(kset), &
4477 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4478 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4481 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4482 offset_a_start, offset_b_start, offset_c_start, &
4483 0, 0, first_set - 1, &
4484 sphi_a, sphi_b, sphi_c, &
4486 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4488 coulomb_context=integral_context, &
4490force_a=force_a(ikind)%forces(:, atom_a), &
4493 do_symmetric=do_symmetric, &
4494 on_diagonal=iatom == jatom, &
4498 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4500 IF (
PRESENT(force_a) .AND. &
4501 .NOT.
PRESENT(force_b) .AND. &
4502 .NOT.
PRESENT(force_c) .AND. &
4503 PRESENT(pabc) .AND. &
4504 .NOT.
PRESENT(mat_dabc) .AND. &
4505 PRESENT(mat_adbc) .AND. &
4506 .NOT.
PRESENT(mat_abdc))
THEN
4507 CALL integrate_set_3c( &
4508 param%par, potential_parameter, &
4509 la_min(iset), la_max(iset), &
4510 lb_min(jset), lb_max(jset), &
4511 lc_min(kset), lc_max(kset), &
4512 npgfa(iset), npgfb(jset), npgfc(kset), &
4513 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4514 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4517 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4518 offset_a_start, offset_b_start, offset_c_start, &
4519 0, 0, first_set - 1, &
4520 sphi_a, sphi_b, sphi_c, &
4522 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4524 coulomb_context=integral_context, &
4526force_a=force_a(ikind)%forces(:, atom_a), &
4529 do_symmetric=do_symmetric, &
4530 on_diagonal=iatom == jatom, &
4534 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4536 IF (
PRESENT(force_a) .AND. &
4537 .NOT.
PRESENT(force_b) .AND. &
4538 .NOT.
PRESENT(force_c) .AND. &
4539 PRESENT(pabc) .AND. &
4540 .NOT.
PRESENT(mat_dabc) .AND. &
4541 PRESENT(mat_adbc) .AND. &
4542 PRESENT(mat_abdc))
THEN
4543 CALL integrate_set_3c( &
4544 param%par, potential_parameter, &
4545 la_min(iset), la_max(iset), &
4546 lb_min(jset), lb_max(jset), &
4547 lc_min(kset), lc_max(kset), &
4548 npgfa(iset), npgfb(jset), npgfc(kset), &
4549 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4550 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4553 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4554 offset_a_start, offset_b_start, offset_c_start, &
4555 0, 0, first_set - 1, &
4556 sphi_a, sphi_b, sphi_c, &
4558 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4560 coulomb_context=integral_context, &
4562force_a=force_a(ikind)%forces(:, atom_a), &
4565 do_symmetric=do_symmetric, &
4566 on_diagonal=iatom == jatom, &
4570 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4572 IF (
PRESENT(force_a) .AND. &
4573 .NOT.
PRESENT(force_b) .AND. &
4574 .NOT.
PRESENT(force_c) .AND. &
4575 PRESENT(pabc) .AND. &
4576 PRESENT(mat_dabc) .AND. &
4577 .NOT.
PRESENT(mat_adbc) .AND. &
4578 .NOT.
PRESENT(mat_abdc))
THEN
4579 CALL integrate_set_3c( &
4580 param%par, potential_parameter, &
4581 la_min(iset), la_max(iset), &
4582 lb_min(jset), lb_max(jset), &
4583 lc_min(kset), lc_max(kset), &
4584 npgfa(iset), npgfb(jset), npgfc(kset), &
4585 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4586 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4589 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4590 offset_a_start, offset_b_start, offset_c_start, &
4591 0, 0, first_set - 1, &
4592 sphi_a, sphi_b, sphi_c, &
4594 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4596 coulomb_context=integral_context, &
4598force_a=force_a(ikind)%forces(:, atom_a), &
4601 do_symmetric=do_symmetric, &
4602 on_diagonal=iatom == jatom, &
4606 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4608 IF (
PRESENT(force_a) .AND. &
4609 .NOT.
PRESENT(force_b) .AND. &
4610 .NOT.
PRESENT(force_c) .AND. &
4611 PRESENT(pabc) .AND. &
4612 PRESENT(mat_dabc) .AND. &
4613 .NOT.
PRESENT(mat_adbc) .AND. &
4614 PRESENT(mat_abdc))
THEN
4615 CALL integrate_set_3c( &
4616 param%par, potential_parameter, &
4617 la_min(iset), la_max(iset), &
4618 lb_min(jset), lb_max(jset), &
4619 lc_min(kset), lc_max(kset), &
4620 npgfa(iset), npgfb(jset), npgfc(kset), &
4621 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4622 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4625 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4626 offset_a_start, offset_b_start, offset_c_start, &
4627 0, 0, first_set - 1, &
4628 sphi_a, sphi_b, sphi_c, &
4630 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4632 coulomb_context=integral_context, &
4634force_a=force_a(ikind)%forces(:, atom_a), &
4637 do_symmetric=do_symmetric, &
4638 on_diagonal=iatom == jatom, &
4642 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4644 IF (
PRESENT(force_a) .AND. &
4645 .NOT.
PRESENT(force_b) .AND. &
4646 .NOT.
PRESENT(force_c) .AND. &
4647 PRESENT(pabc) .AND. &
4648 PRESENT(mat_dabc) .AND. &
4649 PRESENT(mat_adbc) .AND. &
4650 .NOT.
PRESENT(mat_abdc))
THEN
4651 CALL integrate_set_3c( &
4652 param%par, potential_parameter, &
4653 la_min(iset), la_max(iset), &
4654 lb_min(jset), lb_max(jset), &
4655 lc_min(kset), lc_max(kset), &
4656 npgfa(iset), npgfb(jset), npgfc(kset), &
4657 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4658 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4661 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4662 offset_a_start, offset_b_start, offset_c_start, &
4663 0, 0, first_set - 1, &
4664 sphi_a, sphi_b, sphi_c, &
4666 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4668 coulomb_context=integral_context, &
4670force_a=force_a(ikind)%forces(:, atom_a), &
4673 do_symmetric=do_symmetric, &
4674 on_diagonal=iatom == jatom, &
4678 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4680 IF (
PRESENT(force_a) .AND. &
4681 .NOT.
PRESENT(force_b) .AND. &
4682 .NOT.
PRESENT(force_c) .AND. &
4683 PRESENT(pabc) .AND. &
4684 PRESENT(mat_dabc) .AND. &
4685 PRESENT(mat_adbc) .AND. &
4686 PRESENT(mat_abdc))
THEN
4687 CALL integrate_set_3c( &
4688 param%par, potential_parameter, &
4689 la_min(iset), la_max(iset), &
4690 lb_min(jset), lb_max(jset), &
4691 lc_min(kset), lc_max(kset), &
4692 npgfa(iset), npgfb(jset), npgfc(kset), &
4693 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4694 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4697 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4698 offset_a_start, offset_b_start, offset_c_start, &
4699 0, 0, first_set - 1, &
4700 sphi_a, sphi_b, sphi_c, &
4702 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4704 coulomb_context=integral_context, &
4706force_a=force_a(ikind)%forces(:, atom_a), &
4709 do_symmetric=do_symmetric, &
4710 on_diagonal=iatom == jatom, &
4714 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4716 IF (
PRESENT(force_a) .AND. &
4717 .NOT.
PRESENT(force_b) .AND. &
4718 PRESENT(force_c) .AND. &
4719 PRESENT(pabc) .AND. &
4720 .NOT.
PRESENT(mat_dabc) .AND. &
4721 .NOT.
PRESENT(mat_adbc) .AND. &
4722 .NOT.
PRESENT(mat_abdc))
THEN
4723 CALL integrate_set_3c( &
4724 param%par, potential_parameter, &
4725 la_min(iset), la_max(iset), &
4726 lb_min(jset), lb_max(jset), &
4727 lc_min(kset), lc_max(kset), &
4728 npgfa(iset), npgfb(jset), npgfc(kset), &
4729 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4730 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4733 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4734 offset_a_start, offset_b_start, offset_c_start, &
4735 0, 0, first_set - 1, &
4736 sphi_a, sphi_b, sphi_c, &
4738 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4740 coulomb_context=integral_context, &
4742force_a=force_a(ikind)%forces(:, atom_a), &
4744force_c=force_c(kkind)%forces(:, atom_c), &
4745 do_symmetric=do_symmetric, &
4746 on_diagonal=iatom == jatom, &
4750 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4752 IF (
PRESENT(force_a) .AND. &
4753 .NOT.
PRESENT(force_b) .AND. &
4754 PRESENT(force_c) .AND. &
4755 PRESENT(pabc) .AND. &
4756 .NOT.
PRESENT(mat_dabc) .AND. &
4757 .NOT.
PRESENT(mat_adbc) .AND. &
4758 PRESENT(mat_abdc))
THEN
4759 CALL integrate_set_3c( &
4760 param%par, potential_parameter, &
4761 la_min(iset), la_max(iset), &
4762 lb_min(jset), lb_max(jset), &
4763 lc_min(kset), lc_max(kset), &
4764 npgfa(iset), npgfb(jset), npgfc(kset), &
4765 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4766 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4769 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4770 offset_a_start, offset_b_start, offset_c_start, &
4771 0, 0, first_set - 1, &
4772 sphi_a, sphi_b, sphi_c, &
4774 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4776 coulomb_context=integral_context, &
4778force_a=force_a(ikind)%forces(:, atom_a), &
4780force_c=force_c(kkind)%forces(:, atom_c), &
4781 do_symmetric=do_symmetric, &
4782 on_diagonal=iatom == jatom, &
4786 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4788 IF (
PRESENT(force_a) .AND. &
4789 .NOT.
PRESENT(force_b) .AND. &
4790 PRESENT(force_c) .AND. &
4791 PRESENT(pabc) .AND. &
4792 .NOT.
PRESENT(mat_dabc) .AND. &
4793 PRESENT(mat_adbc) .AND. &
4794 .NOT.
PRESENT(mat_abdc))
THEN
4795 CALL integrate_set_3c( &
4796 param%par, potential_parameter, &
4797 la_min(iset), la_max(iset), &
4798 lb_min(jset), lb_max(jset), &
4799 lc_min(kset), lc_max(kset), &
4800 npgfa(iset), npgfb(jset), npgfc(kset), &
4801 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4802 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4805 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4806 offset_a_start, offset_b_start, offset_c_start, &
4807 0, 0, first_set - 1, &
4808 sphi_a, sphi_b, sphi_c, &
4810 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4812 coulomb_context=integral_context, &
4814force_a=force_a(ikind)%forces(:, atom_a), &
4816force_c=force_c(kkind)%forces(:, atom_c), &
4817 do_symmetric=do_symmetric, &
4818 on_diagonal=iatom == jatom, &
4822 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4824 IF (
PRESENT(force_a) .AND. &
4825 .NOT.
PRESENT(force_b) .AND. &
4826 PRESENT(force_c) .AND. &
4827 PRESENT(pabc) .AND. &
4828 .NOT.
PRESENT(mat_dabc) .AND. &
4829 PRESENT(mat_adbc) .AND. &
4830 PRESENT(mat_abdc))
THEN
4831 CALL integrate_set_3c( &
4832 param%par, potential_parameter, &
4833 la_min(iset), la_max(iset), &
4834 lb_min(jset), lb_max(jset), &
4835 lc_min(kset), lc_max(kset), &
4836 npgfa(iset), npgfb(jset), npgfc(kset), &
4837 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4838 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4841 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4842 offset_a_start, offset_b_start, offset_c_start, &
4843 0, 0, first_set - 1, &
4844 sphi_a, sphi_b, sphi_c, &
4846 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4848 coulomb_context=integral_context, &
4850force_a=force_a(ikind)%forces(:, atom_a), &
4852force_c=force_c(kkind)%forces(:, atom_c), &
4853 do_symmetric=do_symmetric, &
4854 on_diagonal=iatom == jatom, &
4858 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4860 IF (
PRESENT(force_a) .AND. &
4861 .NOT.
PRESENT(force_b) .AND. &
4862 PRESENT(force_c) .AND. &
4863 PRESENT(pabc) .AND. &
4864 PRESENT(mat_dabc) .AND. &
4865 .NOT.
PRESENT(mat_adbc) .AND. &
4866 .NOT.
PRESENT(mat_abdc))
THEN
4867 CALL integrate_set_3c( &
4868 param%par, potential_parameter, &
4869 la_min(iset), la_max(iset), &
4870 lb_min(jset), lb_max(jset), &
4871 lc_min(kset), lc_max(kset), &
4872 npgfa(iset), npgfb(jset), npgfc(kset), &
4873 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4874 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4877 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4878 offset_a_start, offset_b_start, offset_c_start, &
4879 0, 0, first_set - 1, &
4880 sphi_a, sphi_b, sphi_c, &
4882 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4884 coulomb_context=integral_context, &
4886force_a=force_a(ikind)%forces(:, atom_a), &
4888force_c=force_c(kkind)%forces(:, atom_c), &
4889 do_symmetric=do_symmetric, &
4890 on_diagonal=iatom == jatom, &
4894 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4896 IF (
PRESENT(force_a) .AND. &
4897 .NOT.
PRESENT(force_b) .AND. &
4898 PRESENT(force_c) .AND. &
4899 PRESENT(pabc) .AND. &
4900 PRESENT(mat_dabc) .AND. &
4901 .NOT.
PRESENT(mat_adbc) .AND. &
4902 PRESENT(mat_abdc))
THEN
4903 CALL integrate_set_3c( &
4904 param%par, potential_parameter, &
4905 la_min(iset), la_max(iset), &
4906 lb_min(jset), lb_max(jset), &
4907 lc_min(kset), lc_max(kset), &
4908 npgfa(iset), npgfb(jset), npgfc(kset), &
4909 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4910 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4913 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4914 offset_a_start, offset_b_start, offset_c_start, &
4915 0, 0, first_set - 1, &
4916 sphi_a, sphi_b, sphi_c, &
4918 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4920 coulomb_context=integral_context, &
4922force_a=force_a(ikind)%forces(:, atom_a), &
4924force_c=force_c(kkind)%forces(:, atom_c), &
4925 do_symmetric=do_symmetric, &
4926 on_diagonal=iatom == jatom, &
4930 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4932 IF (
PRESENT(force_a) .AND. &
4933 .NOT.
PRESENT(force_b) .AND. &
4934 PRESENT(force_c) .AND. &
4935 PRESENT(pabc) .AND. &
4936 PRESENT(mat_dabc) .AND. &
4937 PRESENT(mat_adbc) .AND. &
4938 .NOT.
PRESENT(mat_abdc))
THEN
4939 CALL integrate_set_3c( &
4940 param%par, potential_parameter, &
4941 la_min(iset), la_max(iset), &
4942 lb_min(jset), lb_max(jset), &
4943 lc_min(kset), lc_max(kset), &
4944 npgfa(iset), npgfb(jset), npgfc(kset), &
4945 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4946 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4949 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4950 offset_a_start, offset_b_start, offset_c_start, &
4951 0, 0, first_set - 1, &
4952 sphi_a, sphi_b, sphi_c, &
4954 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4956 coulomb_context=integral_context, &
4958force_a=force_a(ikind)%forces(:, atom_a), &
4960force_c=force_c(kkind)%forces(:, atom_c), &
4961 do_symmetric=do_symmetric, &
4962 on_diagonal=iatom == jatom, &
4966 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
4968 IF (
PRESENT(force_a) .AND. &
4969 .NOT.
PRESENT(force_b) .AND. &
4970 PRESENT(force_c) .AND. &
4971 PRESENT(pabc) .AND. &
4972 PRESENT(mat_dabc) .AND. &
4973 PRESENT(mat_adbc) .AND. &
4974 PRESENT(mat_abdc))
THEN
4975 CALL integrate_set_3c( &
4976 param%par, potential_parameter, &
4977 la_min(iset), la_max(iset), &
4978 lb_min(jset), lb_max(jset), &
4979 lc_min(kset), lc_max(kset), &
4980 npgfa(iset), npgfb(jset), npgfc(kset), &
4981 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
4982 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
4985 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
4986 offset_a_start, offset_b_start, offset_c_start, &
4987 0, 0, first_set - 1, &
4988 sphi_a, sphi_b, sphi_c, &
4990 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
4992 coulomb_context=integral_context, &
4994force_a=force_a(ikind)%forces(:, atom_a), &
4996force_c=force_c(kkind)%forces(:, atom_c), &
4997 do_symmetric=do_symmetric, &
4998 on_diagonal=iatom == jatom, &
5002 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5004 IF (
PRESENT(force_a) .AND. &
5005 PRESENT(force_b) .AND. &
5006 .NOT.
PRESENT(force_c) .AND. &
5007 PRESENT(pabc) .AND. &
5008 .NOT.
PRESENT(mat_dabc) .AND. &
5009 .NOT.
PRESENT(mat_adbc) .AND. &
5010 .NOT.
PRESENT(mat_abdc))
THEN
5011 CALL integrate_set_3c( &
5012 param%par, potential_parameter, &
5013 la_min(iset), la_max(iset), &
5014 lb_min(jset), lb_max(jset), &
5015 lc_min(kset), lc_max(kset), &
5016 npgfa(iset), npgfb(jset), npgfc(kset), &
5017 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5018 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5021 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5022 offset_a_start, offset_b_start, offset_c_start, &
5023 0, 0, first_set - 1, &
5024 sphi_a, sphi_b, sphi_c, &
5026 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5028 coulomb_context=integral_context, &
5030force_a=force_a(ikind)%forces(:, atom_a), &
5031force_b=force_b(jkind)%forces(:, atom_b), &
5033 do_symmetric=do_symmetric, &
5034 on_diagonal=iatom == jatom, &
5038 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5040 IF (
PRESENT(force_a) .AND. &
5041 PRESENT(force_b) .AND. &
5042 .NOT.
PRESENT(force_c) .AND. &
5043 PRESENT(pabc) .AND. &
5044 .NOT.
PRESENT(mat_dabc) .AND. &
5045 .NOT.
PRESENT(mat_adbc) .AND. &
5046 PRESENT(mat_abdc))
THEN
5047 CALL integrate_set_3c( &
5048 param%par, potential_parameter, &
5049 la_min(iset), la_max(iset), &
5050 lb_min(jset), lb_max(jset), &
5051 lc_min(kset), lc_max(kset), &
5052 npgfa(iset), npgfb(jset), npgfc(kset), &
5053 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5054 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5057 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5058 offset_a_start, offset_b_start, offset_c_start, &
5059 0, 0, first_set - 1, &
5060 sphi_a, sphi_b, sphi_c, &
5062 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5064 coulomb_context=integral_context, &
5066force_a=force_a(ikind)%forces(:, atom_a), &
5067force_b=force_b(jkind)%forces(:, atom_b), &
5069 do_symmetric=do_symmetric, &
5070 on_diagonal=iatom == jatom, &
5074 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5076 IF (
PRESENT(force_a) .AND. &
5077 PRESENT(force_b) .AND. &
5078 .NOT.
PRESENT(force_c) .AND. &
5079 PRESENT(pabc) .AND. &
5080 .NOT.
PRESENT(mat_dabc) .AND. &
5081 PRESENT(mat_adbc) .AND. &
5082 .NOT.
PRESENT(mat_abdc))
THEN
5083 CALL integrate_set_3c( &
5084 param%par, potential_parameter, &
5085 la_min(iset), la_max(iset), &
5086 lb_min(jset), lb_max(jset), &
5087 lc_min(kset), lc_max(kset), &
5088 npgfa(iset), npgfb(jset), npgfc(kset), &
5089 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5090 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5093 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5094 offset_a_start, offset_b_start, offset_c_start, &
5095 0, 0, first_set - 1, &
5096 sphi_a, sphi_b, sphi_c, &
5098 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5100 coulomb_context=integral_context, &
5102force_a=force_a(ikind)%forces(:, atom_a), &
5103force_b=force_b(jkind)%forces(:, atom_b), &
5105 do_symmetric=do_symmetric, &
5106 on_diagonal=iatom == jatom, &
5110 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5112 IF (
PRESENT(force_a) .AND. &
5113 PRESENT(force_b) .AND. &
5114 .NOT.
PRESENT(force_c) .AND. &
5115 PRESENT(pabc) .AND. &
5116 .NOT.
PRESENT(mat_dabc) .AND. &
5117 PRESENT(mat_adbc) .AND. &
5118 PRESENT(mat_abdc))
THEN
5119 CALL integrate_set_3c( &
5120 param%par, potential_parameter, &
5121 la_min(iset), la_max(iset), &
5122 lb_min(jset), lb_max(jset), &
5123 lc_min(kset), lc_max(kset), &
5124 npgfa(iset), npgfb(jset), npgfc(kset), &
5125 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5126 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5129 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5130 offset_a_start, offset_b_start, offset_c_start, &
5131 0, 0, first_set - 1, &
5132 sphi_a, sphi_b, sphi_c, &
5134 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5136 coulomb_context=integral_context, &
5138force_a=force_a(ikind)%forces(:, atom_a), &
5139force_b=force_b(jkind)%forces(:, atom_b), &
5141 do_symmetric=do_symmetric, &
5142 on_diagonal=iatom == jatom, &
5146 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5148 IF (
PRESENT(force_a) .AND. &
5149 PRESENT(force_b) .AND. &
5150 .NOT.
PRESENT(force_c) .AND. &
5151 PRESENT(pabc) .AND. &
5152 PRESENT(mat_dabc) .AND. &
5153 .NOT.
PRESENT(mat_adbc) .AND. &
5154 .NOT.
PRESENT(mat_abdc))
THEN
5155 CALL integrate_set_3c( &
5156 param%par, potential_parameter, &
5157 la_min(iset), la_max(iset), &
5158 lb_min(jset), lb_max(jset), &
5159 lc_min(kset), lc_max(kset), &
5160 npgfa(iset), npgfb(jset), npgfc(kset), &
5161 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5162 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5165 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5166 offset_a_start, offset_b_start, offset_c_start, &
5167 0, 0, first_set - 1, &
5168 sphi_a, sphi_b, sphi_c, &
5170 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5172 coulomb_context=integral_context, &
5174force_a=force_a(ikind)%forces(:, atom_a), &
5175force_b=force_b(jkind)%forces(:, atom_b), &
5177 do_symmetric=do_symmetric, &
5178 on_diagonal=iatom == jatom, &
5182 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5184 IF (
PRESENT(force_a) .AND. &
5185 PRESENT(force_b) .AND. &
5186 .NOT.
PRESENT(force_c) .AND. &
5187 PRESENT(pabc) .AND. &
5188 PRESENT(mat_dabc) .AND. &
5189 .NOT.
PRESENT(mat_adbc) .AND. &
5190 PRESENT(mat_abdc))
THEN
5191 CALL integrate_set_3c( &
5192 param%par, potential_parameter, &
5193 la_min(iset), la_max(iset), &
5194 lb_min(jset), lb_max(jset), &
5195 lc_min(kset), lc_max(kset), &
5196 npgfa(iset), npgfb(jset), npgfc(kset), &
5197 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5198 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5201 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5202 offset_a_start, offset_b_start, offset_c_start, &
5203 0, 0, first_set - 1, &
5204 sphi_a, sphi_b, sphi_c, &
5206 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5208 coulomb_context=integral_context, &
5210force_a=force_a(ikind)%forces(:, atom_a), &
5211force_b=force_b(jkind)%forces(:, atom_b), &
5213 do_symmetric=do_symmetric, &
5214 on_diagonal=iatom == jatom, &
5218 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5220 IF (
PRESENT(force_a) .AND. &
5221 PRESENT(force_b) .AND. &
5222 .NOT.
PRESENT(force_c) .AND. &
5223 PRESENT(pabc) .AND. &
5224 PRESENT(mat_dabc) .AND. &
5225 PRESENT(mat_adbc) .AND. &
5226 .NOT.
PRESENT(mat_abdc))
THEN
5227 CALL integrate_set_3c( &
5228 param%par, potential_parameter, &
5229 la_min(iset), la_max(iset), &
5230 lb_min(jset), lb_max(jset), &
5231 lc_min(kset), lc_max(kset), &
5232 npgfa(iset), npgfb(jset), npgfc(kset), &
5233 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5234 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5237 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5238 offset_a_start, offset_b_start, offset_c_start, &
5239 0, 0, first_set - 1, &
5240 sphi_a, sphi_b, sphi_c, &
5242 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5244 coulomb_context=integral_context, &
5246force_a=force_a(ikind)%forces(:, atom_a), &
5247force_b=force_b(jkind)%forces(:, atom_b), &
5249 do_symmetric=do_symmetric, &
5250 on_diagonal=iatom == jatom, &
5254 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5256 IF (
PRESENT(force_a) .AND. &
5257 PRESENT(force_b) .AND. &
5258 .NOT.
PRESENT(force_c) .AND. &
5259 PRESENT(pabc) .AND. &
5260 PRESENT(mat_dabc) .AND. &
5261 PRESENT(mat_adbc) .AND. &
5262 PRESENT(mat_abdc))
THEN
5263 CALL integrate_set_3c( &
5264 param%par, potential_parameter, &
5265 la_min(iset), la_max(iset), &
5266 lb_min(jset), lb_max(jset), &
5267 lc_min(kset), lc_max(kset), &
5268 npgfa(iset), npgfb(jset), npgfc(kset), &
5269 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5270 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5273 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5274 offset_a_start, offset_b_start, offset_c_start, &
5275 0, 0, first_set - 1, &
5276 sphi_a, sphi_b, sphi_c, &
5278 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5280 coulomb_context=integral_context, &
5282force_a=force_a(ikind)%forces(:, atom_a), &
5283force_b=force_b(jkind)%forces(:, atom_b), &
5285 do_symmetric=do_symmetric, &
5286 on_diagonal=iatom == jatom, &
5290 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5292 IF (
PRESENT(force_a) .AND. &
5293 PRESENT(force_b) .AND. &
5294 PRESENT(force_c) .AND. &
5295 PRESENT(pabc) .AND. &
5296 .NOT.
PRESENT(mat_dabc) .AND. &
5297 .NOT.
PRESENT(mat_adbc) .AND. &
5298 .NOT.
PRESENT(mat_abdc))
THEN
5299 CALL integrate_set_3c( &
5300 param%par, potential_parameter, &
5301 la_min(iset), la_max(iset), &
5302 lb_min(jset), lb_max(jset), &
5303 lc_min(kset), lc_max(kset), &
5304 npgfa(iset), npgfb(jset), npgfc(kset), &
5305 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5306 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5309 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5310 offset_a_start, offset_b_start, offset_c_start, &
5311 0, 0, first_set - 1, &
5312 sphi_a, sphi_b, sphi_c, &
5314 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5316 coulomb_context=integral_context, &
5318force_a=force_a(ikind)%forces(:, atom_a), &
5319force_b=force_b(jkind)%forces(:, atom_b), &
5320force_c=force_c(kkind)%forces(:, atom_c), &
5321 do_symmetric=do_symmetric, &
5322 on_diagonal=iatom == jatom, &
5326 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5328 IF (
PRESENT(force_a) .AND. &
5329 PRESENT(force_b) .AND. &
5330 PRESENT(force_c) .AND. &
5331 PRESENT(pabc) .AND. &
5332 .NOT.
PRESENT(mat_dabc) .AND. &
5333 .NOT.
PRESENT(mat_adbc) .AND. &
5334 PRESENT(mat_abdc))
THEN
5335 CALL integrate_set_3c( &
5336 param%par, potential_parameter, &
5337 la_min(iset), la_max(iset), &
5338 lb_min(jset), lb_max(jset), &
5339 lc_min(kset), lc_max(kset), &
5340 npgfa(iset), npgfb(jset), npgfc(kset), &
5341 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5342 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5345 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5346 offset_a_start, offset_b_start, offset_c_start, &
5347 0, 0, first_set - 1, &
5348 sphi_a, sphi_b, sphi_c, &
5350 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5352 coulomb_context=integral_context, &
5354force_a=force_a(ikind)%forces(:, atom_a), &
5355force_b=force_b(jkind)%forces(:, atom_b), &
5356force_c=force_c(kkind)%forces(:, atom_c), &
5357 do_symmetric=do_symmetric, &
5358 on_diagonal=iatom == jatom, &
5362 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5364 IF (
PRESENT(force_a) .AND. &
5365 PRESENT(force_b) .AND. &
5366 PRESENT(force_c) .AND. &
5367 PRESENT(pabc) .AND. &
5368 .NOT.
PRESENT(mat_dabc) .AND. &
5369 PRESENT(mat_adbc) .AND. &
5370 .NOT.
PRESENT(mat_abdc))
THEN
5371 CALL integrate_set_3c( &
5372 param%par, potential_parameter, &
5373 la_min(iset), la_max(iset), &
5374 lb_min(jset), lb_max(jset), &
5375 lc_min(kset), lc_max(kset), &
5376 npgfa(iset), npgfb(jset), npgfc(kset), &
5377 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5378 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5381 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5382 offset_a_start, offset_b_start, offset_c_start, &
5383 0, 0, first_set - 1, &
5384 sphi_a, sphi_b, sphi_c, &
5386 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5388 coulomb_context=integral_context, &
5390force_a=force_a(ikind)%forces(:, atom_a), &
5391force_b=force_b(jkind)%forces(:, atom_b), &
5392force_c=force_c(kkind)%forces(:, atom_c), &
5393 do_symmetric=do_symmetric, &
5394 on_diagonal=iatom == jatom, &
5398 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5400 IF (
PRESENT(force_a) .AND. &
5401 PRESENT(force_b) .AND. &
5402 PRESENT(force_c) .AND. &
5403 PRESENT(pabc) .AND. &
5404 .NOT.
PRESENT(mat_dabc) .AND. &
5405 PRESENT(mat_adbc) .AND. &
5406 PRESENT(mat_abdc))
THEN
5407 CALL integrate_set_3c( &
5408 param%par, potential_parameter, &
5409 la_min(iset), la_max(iset), &
5410 lb_min(jset), lb_max(jset), &
5411 lc_min(kset), lc_max(kset), &
5412 npgfa(iset), npgfb(jset), npgfc(kset), &
5413 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5414 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5417 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5418 offset_a_start, offset_b_start, offset_c_start, &
5419 0, 0, first_set - 1, &
5420 sphi_a, sphi_b, sphi_c, &
5422 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5424 coulomb_context=integral_context, &
5426force_a=force_a(ikind)%forces(:, atom_a), &
5427force_b=force_b(jkind)%forces(:, atom_b), &
5428force_c=force_c(kkind)%forces(:, atom_c), &
5429 do_symmetric=do_symmetric, &
5430 on_diagonal=iatom == jatom, &
5434 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5436 IF (
PRESENT(force_a) .AND. &
5437 PRESENT(force_b) .AND. &
5438 PRESENT(force_c) .AND. &
5439 PRESENT(pabc) .AND. &
5440 PRESENT(mat_dabc) .AND. &
5441 .NOT.
PRESENT(mat_adbc) .AND. &
5442 .NOT.
PRESENT(mat_abdc))
THEN
5443 CALL integrate_set_3c( &
5444 param%par, potential_parameter, &
5445 la_min(iset), la_max(iset), &
5446 lb_min(jset), lb_max(jset), &
5447 lc_min(kset), lc_max(kset), &
5448 npgfa(iset), npgfb(jset), npgfc(kset), &
5449 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5450 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5453 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5454 offset_a_start, offset_b_start, offset_c_start, &
5455 0, 0, first_set - 1, &
5456 sphi_a, sphi_b, sphi_c, &
5458 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5460 coulomb_context=integral_context, &
5462force_a=force_a(ikind)%forces(:, atom_a), &
5463force_b=force_b(jkind)%forces(:, atom_b), &
5464force_c=force_c(kkind)%forces(:, atom_c), &
5465 do_symmetric=do_symmetric, &
5466 on_diagonal=iatom == jatom, &
5470 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5472 IF (
PRESENT(force_a) .AND. &
5473 PRESENT(force_b) .AND. &
5474 PRESENT(force_c) .AND. &
5475 PRESENT(pabc) .AND. &
5476 PRESENT(mat_dabc) .AND. &
5477 .NOT.
PRESENT(mat_adbc) .AND. &
5478 PRESENT(mat_abdc))
THEN
5479 CALL integrate_set_3c( &
5480 param%par, potential_parameter, &
5481 la_min(iset), la_max(iset), &
5482 lb_min(jset), lb_max(jset), &
5483 lc_min(kset), lc_max(kset), &
5484 npgfa(iset), npgfb(jset), npgfc(kset), &
5485 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5486 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5489 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5490 offset_a_start, offset_b_start, offset_c_start, &
5491 0, 0, first_set - 1, &
5492 sphi_a, sphi_b, sphi_c, &
5494 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5496 coulomb_context=integral_context, &
5498force_a=force_a(ikind)%forces(:, atom_a), &
5499force_b=force_b(jkind)%forces(:, atom_b), &
5500force_c=force_c(kkind)%forces(:, atom_c), &
5501 do_symmetric=do_symmetric, &
5502 on_diagonal=iatom == jatom, &
5506 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5508 IF (
PRESENT(force_a) .AND. &
5509 PRESENT(force_b) .AND. &
5510 PRESENT(force_c) .AND. &
5511 PRESENT(pabc) .AND. &
5512 PRESENT(mat_dabc) .AND. &
5513 PRESENT(mat_adbc) .AND. &
5514 .NOT.
PRESENT(mat_abdc))
THEN
5515 CALL integrate_set_3c( &
5516 param%par, potential_parameter, &
5517 la_min(iset), la_max(iset), &
5518 lb_min(jset), lb_max(jset), &
5519 lc_min(kset), lc_max(kset), &
5520 npgfa(iset), npgfb(jset), npgfc(kset), &
5521 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5522 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5525 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5526 offset_a_start, offset_b_start, offset_c_start, &
5527 0, 0, first_set - 1, &
5528 sphi_a, sphi_b, sphi_c, &
5530 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5532 coulomb_context=integral_context, &
5534force_a=force_a(ikind)%forces(:, atom_a), &
5535force_b=force_b(jkind)%forces(:, atom_b), &
5536force_c=force_c(kkind)%forces(:, atom_c), &
5537 do_symmetric=do_symmetric, &
5538 on_diagonal=iatom == jatom, &
5542 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5544 IF (
PRESENT(force_a) .AND. &
5545 PRESENT(force_b) .AND. &
5546 PRESENT(force_c) .AND. &
5547 PRESENT(pabc) .AND. &
5548 PRESENT(mat_dabc) .AND. &
5549 PRESENT(mat_adbc) .AND. &
5550 PRESENT(mat_abdc))
THEN
5551 CALL integrate_set_3c( &
5552 param%par, potential_parameter, &
5553 la_min(iset), la_max(iset), &
5554 lb_min(jset), lb_max(jset), &
5555 lc_min(kset), lc_max(kset), &
5556 npgfa(iset), npgfb(jset), npgfc(kset), &
5557 zeta(:, iset), zetb(:, jset), zetc(:, kset), &
5558 rpgfa(:, iset), rpgfb(:, jset), rpgfc(:, kset), &
5561 nsgfa(iset), nsgfb(jset), last_set - first_set + 1, &
5562 offset_a_start, offset_b_start, offset_c_start, &
5563 0, 0, first_set - 1, &
5564 sphi_a, sphi_b, sphi_c, &
5566 nsgfa(iset), nsgfb(jset), nsgfc(kset), &
5568 coulomb_context=integral_context, &
5570force_a=force_a(ikind)%forces(:, atom_a), &
5571force_b=force_b(jkind)%forces(:, atom_b), &
5572force_c=force_c(kkind)%forces(:, atom_c), &
5573 do_symmetric=do_symmetric, &
5574 on_diagonal=iatom == jatom, &
5578 gg_count=gg_count, gr_count=gr_count, rr_count=rr_count)
5585 IF (calculate_forces .AND.
PRESENT(pabc))
DEALLOCATE (pabc_block)
5587 NULLIFY (munu_block)
5589 row=irow, col=icol, block=munu_block, found=found)
5591 munu_block(:, :) = 0.0_dp
5592 IF (irow == iatom)
THEN
5593 to_be_asserted =
SIZE(munu_block, 1) ==
SIZE(habc, 1) .AND.
SIZE(munu_block, 2) ==
SIZE(habc, 2)
5594 cpassert(to_be_asserted)
5595 munu_block(:, :) = habc(:, :, ic)
5597 to_be_asserted =
SIZE(munu_block, 2) ==
SIZE(habc, 1) .AND.
SIZE(munu_block, 1) ==
SIZE(habc, 2)
5598 cpassert(to_be_asserted)
5599 munu_block(:, :) = transpose(habc(:, :, ic))
5603 IF (calculate_forces)
THEN
5606 IF (
PRESENT(mat_dabc))
THEN
5607 NULLIFY (munu_block)
5609 row=irow, col=icol, block=munu_block, found=found)
5611 munu_block(:, :) = 0.0_dp
5612 IF (irow == iatom)
THEN
5613 munu_block(:, :) = hdabc(i_xyz, :, :, ic)
5615 munu_block(:, :) = transpose(hdabc(i_xyz, :, :, ic))
5618 IF (
PRESENT(mat_adbc))
THEN
5619 NULLIFY (munu_block)
5621 row=irow, col=icol, block=munu_block, found=found)
5623 munu_block(:, :) = 0.0_dp
5624 IF (irow == iatom)
THEN
5625 munu_block(:, :) = hadbc(i_xyz, :, :, ic)
5627 munu_block(:, :) = transpose(hadbc(i_xyz, :, :, ic))
5630 IF (
PRESENT(mat_abdc))
THEN
5631 NULLIFY (munu_block)
5633 row=irow, col=icol, block=munu_block, found=found)
5635 munu_block(:, :) = 0.0_dp
5636 IF (irow == iatom)
THEN
5637 munu_block(:, :) = habdc(i_xyz, :, :, ic)
5639 munu_block(:, :) = transpose(habdc(i_xyz, :, :, ic))
5644 IF (
PRESENT(mat_dabc))
DEALLOCATE (hdabc)
5645 IF (
PRESENT(mat_adbc))
DEALLOCATE (hadbc)
5646 IF (
PRESENT(mat_abdc))
DEALLOCATE (habdc)
5650 DEALLOCATE (basis_set_list_a, basis_set_list_b)
5657 CALL timestop(handle)