Merge lp:~nickpapior/siesta/tddft-work into lp:~rraffiu/siesta/tddft02-format0.92
- tddft-work
- Merge into tddft02-format0.92
Proposed by
Nick Papior
Status: | Merged |
---|---|
Merged at revision: | 651 |
Proposed branch: | lp:~nickpapior/siesta/tddft-work |
Merge into: | lp:~rraffiu/siesta/tddft02-format0.92 |
Diff against target: |
600 lines (+141/-143) 7 files modified
Src/Makefile (+47/-47) Src/cranknic_evolg.F90 (+64/-59) Src/cranknic_evolk.F90 (+16/-19) Src/diag.F90 (+4/-0) Src/m_initwf.F90 (+6/-12) Src/m_inversemm.F90 (+3/-5) version.info (+1/-1) |
To merge this branch: | bzr merge lp:~nickpapior/siesta/tddft-work |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Rafi Ullah | Approve | ||
Review via email: mp+331727@code.launchpad.net |
Commit message
Fixes for running TDDFT branch on my box, reduced memory requirement
Description of the change
Made TDDFT branch work, and reduced memory.
I think this branch is a requirement to get it to work.
To post a comment you must log in.
Revision history for this message
Rafi Ullah (rraffiu) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'Src/Makefile' | |||
2 | --- Src/Makefile 2017-10-03 13:27:08 +0000 | |||
3 | +++ Src/Makefile 2017-10-03 17:43:24 +0000 | |||
4 | @@ -583,9 +583,6 @@ | |||
5 | 583 | cgvc_zmatrix.o: alloc.o conjgr.o m_mpi_utils.o parallel.o precision.o sys.o | 583 | cgvc_zmatrix.o: alloc.o conjgr.o m_mpi_utils.o parallel.o precision.o sys.o |
6 | 584 | cgvc_zmatrix.o: units.o zmatrix.o | 584 | cgvc_zmatrix.o: units.o zmatrix.o |
7 | 585 | cgwf.o: egandd.o onmod.o parallel.o precision.o sys.o | 585 | cgwf.o: egandd.o onmod.o parallel.o precision.o sys.o |
8 | 586 | sankey_change_basis.o: alloc.o m_matdiag.o parallel.o parallelsubs.o precision.o | ||
9 | 587 | sankey_change_basis.o: sparse_matrices.o sys.o wavefunctions.o kpoint_grid.o | ||
10 | 588 | sankey_change_basis.o: m_gamma.o m_spin.o atomlist.o diag_option.o | ||
11 | 589 | chemical.o: parallel.o precision.o sys.o | 586 | chemical.o: parallel.o precision.o sys.o |
12 | 590 | chempot.o: alloc.o mneighb.o parallel.o parallelsubs.o precision.o sys.o | 587 | chempot.o: alloc.o mneighb.o parallel.o parallelsubs.o precision.o sys.o |
13 | 591 | chkdim.o: sys.o | 588 | chkdim.o: sys.o |
14 | @@ -648,6 +645,13 @@ | |||
15 | 648 | conjgr_old.o: precision.o | 645 | conjgr_old.o: precision.o |
16 | 649 | coor.o: alloc.o parallel.o precision.o siesta_geom.o sys.o units.o zmatrix.o | 646 | coor.o: alloc.o parallel.o precision.o siesta_geom.o sys.o units.o zmatrix.o |
17 | 650 | coxmol.o: files.o periodic_table.o precision.o | 647 | coxmol.o: files.o periodic_table.o precision.o |
18 | 648 | cranknic_evolg.o: alloc.o atomlist.o m_energies.o m_eo.o m_inversemm.o | ||
19 | 649 | cranknic_evolg.o: m_matswinvers.o m_spin.o m_steps.o parallel.o parallelsubs.o | ||
20 | 650 | cranknic_evolg.o: precision.o siesta_options.o sparse_matrices.o sys.o units.o | ||
21 | 651 | cranknic_evolg.o: wavefunctions.o | ||
22 | 652 | cranknic_evolk.o: atomlist.o cranknic_evolg.o kpoint_grid.o m_energies.o m_eo.o | ||
23 | 653 | cranknic_evolk.o: m_spin.o parallel.o parallelsubs.o precision.o | ||
24 | 654 | cranknic_evolk.o: siesta_options.o sparse_matrices.o units.o wavefunctions.o | ||
25 | 651 | create_Sparsity_SC.o: class_Sparsity.o geom_helper.o intrinsic_missing.o | 655 | create_Sparsity_SC.o: class_Sparsity.o geom_helper.o intrinsic_missing.o |
26 | 652 | create_Sparsity_Union.o: class_OrbitalDistribution.o class_Sparsity.o | 656 | create_Sparsity_Union.o: class_OrbitalDistribution.o class_Sparsity.o |
27 | 653 | create_Sparsity_Union.o: m_region.o parallel.o precision.o | 657 | create_Sparsity_Union.o: m_region.o parallel.o precision.o |
28 | @@ -698,7 +702,7 @@ | |||
29 | 698 | domain_decom.o: sparse_matrices.o sys.o | 702 | domain_decom.o: sparse_matrices.o sys.o |
30 | 699 | doping_uniform.o: alloc.o m_ntm.o mesh.o parallel.o precision.o sys.o | 703 | doping_uniform.o: alloc.o m_ntm.o mesh.o parallel.o precision.o sys.o |
31 | 700 | dynamics.o: alloc.o atomlist.o files.o ioxv.o m_mpi_utils.o parallel.o | 704 | dynamics.o: alloc.o atomlist.o files.o ioxv.o m_mpi_utils.o parallel.o |
33 | 701 | dynamics.o: precision.o siesta_options.o sys.o units.o | 705 | dynamics.o: precision.o sys.o units.o |
34 | 702 | egandd.o: alloc.o denmat.o ener3.o globalise.o gradient.o on_subs.o onmod.o | 706 | egandd.o: alloc.o denmat.o ener3.o globalise.o gradient.o on_subs.o onmod.o |
35 | 703 | egandd.o: onmod.o precision.o sys.o | 707 | egandd.o: onmod.o precision.o sys.o |
36 | 704 | eggbox.o: parallel.o precision.o | 708 | eggbox.o: parallel.o precision.o |
37 | @@ -706,12 +710,6 @@ | |||
38 | 706 | electrostatic.o: precision.o radfft.o radial.o sys.o | 710 | electrostatic.o: precision.o radfft.o radial.o sys.o |
39 | 707 | ener3.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o | 711 | ener3.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o |
40 | 708 | ener3lomem.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o | 712 | ener3lomem.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o |
41 | 709 | cranknic_evolg.o: alloc.o m_eo.o m_matswinvers.o m_steps.o parallel.o parallelsubs.o | ||
42 | 710 | cranknic_evolg.o: precision.o siesta_options.o sparse_matrices.o sys.o wavefunctions.o | ||
43 | 711 | cranknic_evolg.o: m_spin.o atomlist.o m_energies.o units.o m_inversemm.o | ||
44 | 712 | cranknic_evolk.o: parallel.o parallelsubs.o precision.o siesta_options.o m_spin.o | ||
45 | 713 | cranknic_evolk.o: wavefunctions.o sparse_matrices.o atomlist.o kpoint_grid.o | ||
46 | 714 | cranknic_evolk.o: units.o m_energies.o m_eo.o cranknic_evolg.o | ||
47 | 715 | extrapolateSpData2D.o: class_Data2D.o class_OrbitalDistribution.o | 713 | extrapolateSpData2D.o: class_Data2D.o class_OrbitalDistribution.o |
48 | 716 | extrapolateSpData2D.o: class_SpData2D.o class_Sparsity.o restructSpData2D.o | 714 | extrapolateSpData2D.o: class_SpData2D.o class_Sparsity.o restructSpData2D.o |
49 | 717 | extrapolon.o: parallel.o precision.o sys.o | 715 | extrapolon.o: parallel.o precision.o sys.o |
50 | @@ -768,9 +766,9 @@ | |||
51 | 768 | iomd.o: files.o precision.o | 766 | iomd.o: files.o precision.o |
52 | 769 | iopipes.o: parallel.o precision.o sys.o | 767 | iopipes.o: parallel.o precision.o sys.o |
53 | 770 | iosockets.o: cellsubs.o fsockets.o m_mpi_utils.o parallel.o precision.o sys.o | 768 | iosockets.o: cellsubs.o fsockets.o m_mpi_utils.o parallel.o precision.o sys.o |
54 | 769 | iotdxv.o: files.o parallel.o precision.o | ||
55 | 771 | iowfs_netcdf.o: alloc.o parallel.o parallelsubs.o precision.o sys.o | 770 | iowfs_netcdf.o: alloc.o parallel.o parallelsubs.o precision.o sys.o |
56 | 772 | ioxv.o: files.o parallel.o precision.o | 771 | ioxv.o: files.o parallel.o precision.o |
57 | 773 | iotdxv.o: files.o parallel.o precision.o | ||
58 | 774 | iozm.o: files.o parallel.o precision.o siesta_geom.o zmatrix.o | 772 | iozm.o: files.o parallel.o precision.o siesta_geom.o zmatrix.o |
59 | 775 | ipack.o: sys.o | 773 | ipack.o: sys.o |
60 | 776 | kgrid.o: parallel.o precision.o units.o | 774 | kgrid.o: parallel.o precision.o units.o |
61 | @@ -815,9 +813,8 @@ | |||
62 | 815 | m_efield.o: siesta_geom.o sys.o units.o | 813 | m_efield.o: siesta_geom.o sys.o units.o |
63 | 816 | m_energies.o: precision.o | 814 | m_energies.o: precision.o |
64 | 817 | m_eo.o: precision.o | 815 | m_eo.o: precision.o |
68 | 818 | m_evolve.o: alloc.o m_memory.o parallel.o parallelsubs.o precision.o sys.o | 816 | m_evolve.o: cranknic_evolg.o cranknic_evolk.o m_gamma.o m_spin.o precision.o |
69 | 819 | m_evolve.o: atomlist.o m_spin.o m_gamma.o sparse_matrices.o kpoint_grid.o | 817 | m_evolve.o: sys.o |
67 | 820 | m_evolve.o: cranknic_evolg.o cranknic_evolk.o | ||
70 | 821 | m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o | 818 | m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o |
71 | 822 | m_filter.o: bessph.o precision.o radfft.o sorting.o sys.o | 819 | m_filter.o: bessph.o precision.o radfft.o sorting.o sys.o |
72 | 823 | m_fire.o: parallel.o precision.o | 820 | m_fire.o: parallel.o precision.o |
73 | @@ -840,10 +837,9 @@ | |||
74 | 840 | m_hs_matrix.o: alloc.o cellsubs.o geom_helper.o precision.o sys.o | 837 | m_hs_matrix.o: alloc.o cellsubs.o geom_helper.o precision.o sys.o |
75 | 841 | m_hsx.o: atm_types.o atmfuncs.o atomlist.o files.o parallel.o parallelsubs.o | 838 | m_hsx.o: atm_types.o atmfuncs.o atomlist.o files.o parallel.o parallelsubs.o |
76 | 842 | m_hsx.o: precision.o siesta_geom.o sys.o | 839 | m_hsx.o: precision.o siesta_geom.o sys.o |
81 | 843 | m_initwf.o: alloc.o densematrix.o fermid.o diag.o m_eo.o m_memory.o | 840 | m_initwf.o: alloc.o atomlist.o densematrix.o diag.o diag_option.o fermid.o |
82 | 844 | m_initwf.o: parallel.o parallelsubs.o precision.o sparse_matrices.o sys.o | 841 | m_initwf.o: kpoint_grid.o m_eo.o m_gamma.o m_memory.o m_spin.o parallel.o |
83 | 845 | m_initwf.o: wavefunctions.o kpoint_grid.o atomlist.o m_spin.o m_gamma.o | 842 | m_initwf.o: parallelsubs.o precision.o sparse_matrices.o sys.o wavefunctions.o |
80 | 846 | m_initwf.o: diag_option.o | ||
84 | 847 | m_integrate.o: precision.o | 843 | m_integrate.o: precision.o |
85 | 848 | m_inversemm.o: precision.o | 844 | m_inversemm.o: precision.o |
86 | 849 | m_io.o: sys.o | 845 | m_io.o: sys.o |
87 | @@ -857,8 +853,8 @@ | |||
88 | 857 | m_iorho.o: alloc.o parallel.o parallelsubs.o precision.o sys.o | 853 | m_iorho.o: alloc.o parallel.o parallelsubs.o precision.o sys.o |
89 | 858 | m_iostruct.o: alloc.o files.o m_mpi_utils.o parallel.o precision.o | 854 | m_iostruct.o: alloc.o files.o m_mpi_utils.o parallel.o precision.o |
90 | 859 | m_iostruct.o: siesta_geom.o sys.o units.o | 855 | m_iostruct.o: siesta_geom.o sys.o units.o |
93 | 860 | m_iotddft.o: files.o m_dipol.o m_steps.o parallel.o siesta_options.o | 856 | m_iotddft.o: files.o m_dipol.o m_io.o m_steps.o parallel.o siesta_options.o |
94 | 861 | m_iotddft.o: wavefunctions.o units.o m_io.o | 857 | m_iotddft.o: units.o wavefunctions.o |
95 | 862 | m_kinetic.o: precision.o | 858 | m_kinetic.o: precision.o |
96 | 863 | m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o | 859 | m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o |
97 | 864 | m_matdiag.o: precision.o | 860 | m_matdiag.o: precision.o |
98 | @@ -1207,6 +1203,9 @@ | |||
99 | 1207 | rhoofd.o: meshdscf.o meshphi.o parallel.o parallelsubs.o precision.o sys.o | 1203 | rhoofd.o: meshdscf.o meshphi.o parallel.o parallelsubs.o precision.o sys.o |
100 | 1208 | rhoofdsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o | 1204 | rhoofdsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o |
101 | 1209 | rhoofdsp.o: meshdscf.o meshphi.o precision.o sys.o | 1205 | rhoofdsp.o: meshdscf.o meshphi.o precision.o sys.o |
102 | 1206 | sankey_change_basis.o: alloc.o atomlist.o diag_option.o kpoint_grid.o m_gamma.o | ||
103 | 1207 | sankey_change_basis.o: m_matdiag.o m_spin.o parallel.o parallelsubs.o | ||
104 | 1208 | sankey_change_basis.o: precision.o sparse_matrices.o sys.o wavefunctions.o | ||
105 | 1210 | save_density_matrix.o: atomlist.o files.o iodm_netcdf.o m_energies.o m_iodm.o | 1209 | save_density_matrix.o: atomlist.o files.o iodm_netcdf.o m_energies.o m_iodm.o |
106 | 1211 | save_density_matrix.o: m_matio.o m_ncdf_siesta.o m_spin.o m_steps.o | 1210 | save_density_matrix.o: m_matio.o m_ncdf_siesta.o m_spin.o m_steps.o |
107 | 1212 | save_density_matrix.o: m_ts_global_vars.o m_ts_iodm.o m_ts_options.o | 1211 | save_density_matrix.o: m_ts_global_vars.o m_ts_iodm.o m_ts_options.o |
108 | @@ -1258,17 +1257,17 @@ | |||
109 | 1258 | siesta_forces.o: atomlist.o class_Fstack_Data1D.o class_SpData2D.o compute_dm.o | 1257 | siesta_forces.o: atomlist.o class_Fstack_Data1D.o class_SpData2D.o compute_dm.o |
110 | 1259 | siesta_forces.o: compute_energies.o compute_max_diff.o files.o | 1258 | siesta_forces.o: compute_energies.o compute_max_diff.o files.o |
111 | 1260 | siesta_forces.o: final_H_f_stress.o flook_siesta.o kpoint_grid.o | 1259 | siesta_forces.o: final_H_f_stress.o flook_siesta.o kpoint_grid.o |
123 | 1261 | siesta_forces.o: m_check_walltime.o m_convergence.o m_energies.o m_eo.o | 1260 | siesta_forces.o: m_check_walltime.o m_convergence.o m_energies.o m_forces.o |
124 | 1262 | siesta_forces.o: m_forces.o m_gamma.o m_initwf.o m_iodm_old.o m_mixing.o | 1261 | siesta_forces.o: m_initwf.o m_iodm_old.o m_mixing.o m_mixing_scf.o |
125 | 1263 | siesta_forces.o: m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o m_pexsi.o | 1262 | siesta_forces.o: m_mpi_utils.o m_ncdf_siesta.o m_pexsi.o m_pexsi_driver.o |
126 | 1264 | siesta_forces.o: m_pexsi_driver.o m_rhog.o m_spin.o m_steps.o m_stress.o | 1263 | siesta_forces.o: m_rhog.o m_spin.o m_steps.o m_stress.o m_transiesta.o |
127 | 1265 | siesta_forces.o: m_transiesta.o m_ts_charge.o m_ts_electype.o | 1264 | siesta_forces.o: m_ts_charge.o m_ts_electype.o m_ts_global_vars.o m_ts_method.o |
128 | 1266 | siesta_forces.o: m_ts_global_vars.o m_ts_method.o m_ts_options.o mixer.o | 1265 | siesta_forces.o: m_ts_options.o mixer.o parallel.o post_scf_work.o precision.o |
129 | 1267 | siesta_forces.o: parallel.o post_scf_work.o precision.o save_density_matrix.o | 1266 | siesta_forces.o: save_density_matrix.o scfconvergence_test.o setup_H0.o |
130 | 1268 | siesta_forces.o: scfconvergence_test.o setup_H0.o setup_hamiltonian.o | 1267 | siesta_forces.o: setup_hamiltonian.o siesta_cml.o siesta_dicts.o siesta_geom.o |
131 | 1269 | siesta_forces.o: siesta_cml.o siesta_dicts.o siesta_geom.o siesta_master.o | 1268 | siesta_forces.o: siesta_master.o siesta_options.o sparse_matrices.o |
132 | 1270 | siesta_forces.o: siesta_options.o sparse_matrices.o state_analysis.o | 1269 | siesta_forces.o: state_analysis.o state_init.o sys.o timer.o units.o |
133 | 1271 | siesta_forces.o: state_init.o sys.o timer.o units.o write_subs.o | 1270 | siesta_forces.o: write_subs.o |
134 | 1272 | siesta_geom.o: precision.o | 1271 | siesta_geom.o: precision.o |
135 | 1273 | siesta_init.o: alloc.o atomlist.o bands.o bsc_xcmod.o | 1272 | siesta_init.o: alloc.o atomlist.o bands.o bsc_xcmod.o |
136 | 1274 | siesta_init.o: class_Fstack_Pair_Geometry_SpData2D.o densematrix.o | 1273 | siesta_init.o: class_Fstack_Pair_Geometry_SpData2D.o densematrix.o |
137 | @@ -1280,7 +1279,7 @@ | |||
138 | 1280 | siesta_init.o: parallel.o parallelsubs.o projected_DOS.o siesta_cmlsubs.o | 1279 | siesta_init.o: parallel.o parallelsubs.o projected_DOS.o siesta_cmlsubs.o |
139 | 1281 | siesta_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o | 1280 | siesta_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o |
140 | 1282 | siesta_init.o: struct_init.o sys.o timer.o timestamp.o ts_init.o writewave.o | 1281 | siesta_init.o: struct_init.o sys.o timer.o timestamp.o ts_init.o writewave.o |
142 | 1283 | siesta_init.o: zmatrix.o | 1282 | siesta_init.o: zmatrix.o |
143 | 1284 | siesta_master.o: iopipes.o iosockets.o precision.o sys.o | 1283 | siesta_master.o: iopipes.o iosockets.o precision.o sys.o |
144 | 1285 | siesta_move.o: atomlist.o broyden_optim.o cell_broyden_optim.o | 1284 | siesta_move.o: atomlist.o broyden_optim.o cell_broyden_optim.o |
145 | 1286 | siesta_move.o: cell_fire_optim.o dynamics.o fire_optim.o flook_siesta.o ioxv.o | 1285 | siesta_move.o: cell_fire_optim.o dynamics.o fire_optim.o flook_siesta.o ioxv.o |
146 | @@ -1292,10 +1291,10 @@ | |||
147 | 1292 | siesta_tddft.o: alloc.o atomlist.o compute_energies.o final_H_f_stress.o | 1291 | siesta_tddft.o: alloc.o atomlist.o compute_energies.o final_H_f_stress.o |
148 | 1293 | siesta_tddft.o: kpoint_grid.o m_energies.o m_eo.o m_evolve.o m_gamma.o | 1292 | siesta_tddft.o: kpoint_grid.o m_energies.o m_eo.o m_evolve.o m_gamma.o |
149 | 1294 | siesta_tddft.o: m_initwf.o m_iotddft.o m_mpi_utils.o m_spin.o m_steps.o | 1293 | siesta_tddft.o: m_initwf.o m_iotddft.o m_mpi_utils.o m_spin.o m_steps.o |
154 | 1295 | siesta_tddft.o: overfsm.o parallel.o precision.o setup_H0.o setup_hamiltonian.o | 1294 | siesta_tddft.o: overfsm.o parallel.o precision.o sankey_change_basis.o |
155 | 1296 | siesta_tddft.o: siesta_cml.o siesta_options.o sparse_matrices.o | 1295 | siesta_tddft.o: setup_H0.o setup_hamiltonian.o siesta_cml.o siesta_options.o |
156 | 1297 | siesta_tddft.o: state_analysis.o state_init.o sys.o wavefunctions.o | 1296 | siesta_tddft.o: sparse_matrices.o state_analysis.o state_init.o sys.o |
157 | 1298 | siesta_tddft.o: sankey_change_basis.o | 1297 | siesta_tddft.o: wavefunctions.o |
158 | 1299 | sparse_matrices.o: alloc.o class_Fstack_Pair_Geometry_SpData2D.o | 1298 | sparse_matrices.o: alloc.o class_Fstack_Pair_Geometry_SpData2D.o |
159 | 1300 | sparse_matrices.o: class_OrbitalDistribution.o class_SpData1D.o | 1299 | sparse_matrices.o: class_OrbitalDistribution.o class_SpData1D.o |
160 | 1301 | sparse_matrices.o: class_SpData2D.o class_Sparsity.o precision.o | 1300 | sparse_matrices.o: class_SpData2D.o class_Sparsity.o precision.o |
161 | @@ -1311,19 +1310,19 @@ | |||
162 | 1311 | state_init.o: alloc.o atomlist.o class_Data2D.o class_SpData1D.o | 1310 | state_init.o: alloc.o atomlist.o class_Data2D.o class_SpData1D.o |
163 | 1312 | state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o | 1311 | state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o |
164 | 1313 | state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o | 1312 | state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o |
168 | 1314 | state_init.o: ioxv.o kpoint_grid.o ldau_specs.o m_chess.o m_energies.o m_eo.o | 1313 | state_init.o: iotdxv.o ioxv.o kpoint_grid.o ldau_specs.o m_chess.o m_energies.o |
169 | 1315 | state_init.o: m_gamma.o m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o | 1314 | state_init.o: m_eo.o m_gamma.o m_mixing.o m_mixing_scf.o m_mpi_utils.o |
170 | 1316 | state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o | 1315 | state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o |
171 | 1317 | state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o | 1316 | state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o |
172 | 1318 | state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o | 1317 | state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o |
173 | 1319 | state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o | 1318 | state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o |
174 | 1320 | state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o | 1319 | state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o |
175 | 1321 | state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o | 1320 | state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o |
181 | 1322 | state_init.o: sys.o units.o write_subs.o zmatrix.o iotdxv.o | 1321 | state_init.o: sys.o units.o write_subs.o zmatrix.o |
182 | 1323 | struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o | 1322 | struct_init.o: alloc.o atmfuncs.o atomlist.o files.o iotdxv.o ioxv.o |
183 | 1324 | struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o | 1323 | struct_init.o: m_exp_coord.o m_iostruct.o m_mpi_utils.o m_steps.o parallel.o |
184 | 1325 | struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o | 1324 | struct_init.o: periodic_table.o siesta_cml.o siesta_geom.o siesta_master.o |
185 | 1326 | struct_init.o: units.o zmatrix.o iotdxv.o | 1325 | struct_init.o: siesta_options.o units.o zmatrix.o |
186 | 1327 | sys.o: parallel.o siesta_cml.o | 1326 | sys.o: parallel.o siesta_cml.o |
187 | 1328 | timer.o: extrae_eventllist.o extrae_module.o m_timer.o parallel.o sys.o | 1327 | timer.o: extrae_eventllist.o extrae_module.o m_timer.o parallel.o sys.o |
188 | 1329 | timer.o: timer_tree.o | 1328 | timer.o: timer_tree.o |
189 | @@ -1343,8 +1342,8 @@ | |||
190 | 1343 | vmatsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o meshdscf.o | 1342 | vmatsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o meshdscf.o |
191 | 1344 | vmatsp.o: meshphi.o precision.o | 1343 | vmatsp.o: meshphi.o precision.o |
192 | 1345 | vmb.o: m_fixed.o parallel.o precision.o sys.o | 1344 | vmb.o: m_fixed.o parallel.o precision.o sys.o |
195 | 1346 | wavefunctions.o: parallel.o precision.o sparse_matrices.o kpoint_grid.o | 1345 | wavefunctions.o: atomlist.o kpoint_grid.o m_gamma.o m_matswinvers.o m_spin.o |
196 | 1347 | wavefunctions.o: atomlist.o m_spin.o m_matswinvers.o | 1346 | wavefunctions.o: parallel.o parallelsubs.o precision.o sparse_matrices.o |
197 | 1348 | write_inp_wannier.o: alloc.o atmfuncs.o atomlist.o m_ntm.o m_orderbands.o | 1347 | write_inp_wannier.o: alloc.o atmfuncs.o atomlist.o m_ntm.o m_orderbands.o |
198 | 1349 | write_inp_wannier.o: mneighb.o parallel.o parallelsubs.o precision.o | 1348 | write_inp_wannier.o: mneighb.o parallel.o parallelsubs.o precision.o |
199 | 1350 | write_inp_wannier.o: siesta2wannier90.o siesta_geom.o | 1349 | write_inp_wannier.o: siesta2wannier90.o siesta_geom.o |
200 | @@ -1459,8 +1458,8 @@ | |||
201 | 1459 | m_grdsam.o: grdsam.o | 1458 | m_grdsam.o: grdsam.o |
202 | 1460 | m_hsparse.o: hsparse.o | 1459 | m_hsparse.o: hsparse.o |
203 | 1461 | m_intramol_pressure.o: remove_intramol_pressure.o | 1460 | m_intramol_pressure.o: remove_intramol_pressure.o |
204 | 1461 | m_iotdxv.o: iotdxv.o | ||
205 | 1462 | m_ioxv.o: ioxv.o | 1462 | m_ioxv.o: ioxv.o |
206 | 1463 | m_iotdxv.o: iotdxv.o | ||
207 | 1464 | m_kinefsm.o: kinefsm.o | 1463 | m_kinefsm.o: kinefsm.o |
208 | 1465 | m_ksv.o: ksv.o | 1464 | m_ksv.o: ksv.o |
209 | 1466 | m_ksvinit.o: ksvinit.o | 1465 | m_ksvinit.o: ksvinit.o |
210 | @@ -1489,6 +1488,7 @@ | |||
211 | 1489 | m_rhofft.o: rhofft.o | 1488 | m_rhofft.o: rhofft.o |
212 | 1490 | m_rhoofd.o: rhoofd.o | 1489 | m_rhoofd.o: rhoofd.o |
213 | 1491 | m_rusage.o: rusage.o | 1490 | m_rusage.o: rusage.o |
214 | 1491 | m_sankey_change_basis.o: sankey_change_basis.o | ||
215 | 1492 | m_save_density_matrix.o: save_density_matrix.o | 1492 | m_save_density_matrix.o: save_density_matrix.o |
216 | 1493 | m_scf_options.o: m_options.o | 1493 | m_scf_options.o: m_options.o |
217 | 1494 | m_scfconvergence_test.o: scfconvergence_test.o | 1494 | m_scfconvergence_test.o: scfconvergence_test.o |
218 | 1495 | 1495 | ||
219 | === modified file 'Src/cranknic_evolg.F90' | |||
220 | --- Src/cranknic_evolg.F90 2017-10-03 13:27:08 +0000 | |||
221 | +++ Src/cranknic_evolg.F90 2017-10-03 17:43:24 +0000 | |||
222 | @@ -56,21 +56,22 @@ | |||
223 | 56 | real(dp) :: delt | 56 | real(dp) :: delt |
224 | 57 | ! | 57 | ! |
225 | 58 | type(matrix) :: Hauxms,Sauxms, wfaux1, wfaux2 | 58 | type(matrix) :: Hauxms,Sauxms, wfaux1, wfaux2 |
226 | 59 | character(3) :: m_operation | ||
227 | 60 | character(5) :: m_storage | ||
228 | 61 | complex(dp) :: cvar1, cvar2 | 59 | complex(dp) :: cvar1, cvar2 |
229 | 60 | |||
230 | 61 | #ifdef MPI | ||
231 | 62 | character(len=5), parameter :: m_storage = 'pzdbc' | ||
232 | 63 | character(len=3), parameter :: m_operation = 'lap' | ||
233 | 64 | #else | ||
234 | 65 | character(len=5), parameter :: m_storage = 'szden' | ||
235 | 66 | character(len=5), parameter :: m_operation = 'lap' | ||
236 | 67 | #endif | ||
237 | 68 | |||
238 | 62 | ! | 69 | ! |
239 | 63 | integer :: i, j, io, jo, ie, ispin, ind, nocc | 70 | integer :: i, j, io, jo, ie, ispin, ind, nocc |
240 | 64 | ! | 71 | ! |
241 | 65 | real(dp) :: eigv | 72 | real(dp) :: eigv |
242 | 66 | logical, save :: firsttime = .true. | 73 | logical, save :: firsttime = .true. |
250 | 67 | #ifdef MPI | 74 | |
244 | 68 | m_storage='pzdbc' | ||
245 | 69 | m_operation='lap' | ||
246 | 70 | #else | ||
247 | 71 | m_storage='szden' | ||
248 | 72 | m_operation='lap' | ||
249 | 73 | #endif | ||
251 | 74 | #ifdef DEBUG | 75 | #ifdef DEBUG |
252 | 75 | call write_debug( ' PRE cn_evolg' ) | 76 | call write_debug( ' PRE cn_evolg' ) |
253 | 76 | #endif | 77 | #endif |
254 | @@ -165,38 +166,46 @@ | |||
255 | 165 | !************************************************************************* | 166 | !************************************************************************* |
256 | 166 | 167 | ||
257 | 167 | implicit none | 168 | implicit none |
259 | 168 | ! | 169 | |
260 | 169 | integer :: no | 170 | integer :: no |
261 | 170 | real(kind=dp) :: deltat | 171 | real(kind=dp) :: deltat |
262 | 171 | type(matrix) :: H,S,phi | 172 | type(matrix) :: H,S,phi |
263 | 173 | |||
264 | 172 | ! Internal variables | 174 | ! Internal variables |
266 | 173 | type(matrix) :: aux1,aux2,aux3,aux4 | 175 | type(matrix) :: LHS, RHS |
267 | 174 | complex(kind=dp) :: alpha | 176 | complex(kind=dp) :: alpha |
271 | 175 | character :: m_storage*5, m_operation*3 | 177 | |
272 | 176 | logical, save :: inversemm_linear = .true. | 178 | complex(kind=dp), parameter :: cZERO = cmplx(0._dp, 0._dp, dp) |
273 | 177 | ! | 179 | complex(kind=dp), parameter :: cONE = cmplx(1._dp, 0._dp, dp) |
274 | 180 | |||
275 | 178 | #ifdef MPI | 181 | #ifdef MPI |
278 | 179 | m_storage='pzdbc' | 182 | character(len=5), parameter :: m_storage = 'pzdbc' |
279 | 180 | m_operation='lap' | 183 | character(len=3), parameter :: m_operation = 'lap' |
280 | 181 | #else | 184 | #else |
283 | 182 | m_storage='szden' | 185 | character(len=5), parameter :: m_storage = 'szden' |
284 | 183 | m_operation='lap' | 186 | character(len=5), parameter :: m_operation = 'lap' |
285 | 184 | #endif | 187 | #endif |
290 | 185 | ! | 188 | |
291 | 186 | call m_allocate(aux1,no,no,m_storage) | 189 | logical, parameter :: inversemm_linear = .true. |
292 | 187 | call m_allocate(aux2,no,no,m_storage) | 190 | |
289 | 188 | call m_allocate(aux3,phi%dim1,phi%dim2,m_storage) | ||
293 | 189 | ! First order expansion for the evolution operator | 191 | ! First order expansion for the evolution operator |
304 | 190 | alpha=-0.5_dp*cmplx(0.0_dp,1.0_dp,dp)*deltat | 192 | alpha = -0.5_dp * cmplx(0.0_dp,1.0_dp,dp) * deltat |
305 | 191 | ! Copying S to aux1 and aux2 | 193 | |
306 | 192 | call m_add(S,'n',aux1,cmplx(1.0_dp,0.0_dp,dp),cmplx(0.0_dp,0.0_dp,dp),m_operation) | 194 | ! Allocate work arrays |
307 | 193 | call m_add(S,'n',aux2,cmplx(1.0_dp,0.0_dp,dp),cmplx(0.0_dp,0.0_dp,dp),m_operation) | 195 | call m_allocate(LHS,no,no,m_storage) |
308 | 194 | ! Calculating S - alpha * H | 196 | call m_allocate(RHS,phi%dim1,phi%dim2,m_storage) |
309 | 195 | call m_add(H,'n',aux1,alpha,cmplx(1.0_dp,0.0_dp,dp),m_operation) | 197 | |
310 | 196 | ! Calculating (S - alpha * H) * phi | 198 | ! Setup S - alpha * H |
311 | 197 | call mm_multiply(aux1,'n',phi,'n',aux3,cmplx(1.0,0.0,dp),cmplx(0.0,0.0,dp),m_operation) | 199 | call m_add(S, 'n', LHS, cone, cZERO, m_operation) |
312 | 198 | ! Calculating S + alpha * H | 200 | call m_add(H, 'n', LHS, alpha, cONE, m_operation) |
313 | 199 | call m_add(H,'n',aux2,-1.0_dp*alpha,cmplx(1.0_dp,0.0_dp,dp),m_operation) | 201 | |
314 | 202 | ! Calculate | ||
315 | 203 | ! (S - alpha * H) psi | ||
316 | 204 | call mm_multiply(LHS, 'n', phi, 'n', RHS, cONE, cZERO, m_operation) | ||
317 | 205 | |||
318 | 206 | ! Setup S + alpha * H | ||
319 | 207 | call m_add(S, 'n', LHS, cONE, cZERO, m_operation) | ||
320 | 208 | call m_add(H, 'n', LHS, -alpha, cONE, m_operation) | ||
321 | 200 | 209 | ||
322 | 201 | !---------------------------------------------------------------------------------------! | 210 | !---------------------------------------------------------------------------------------! |
323 | 202 | ! There are two ways to compute inverse. One is to first obtain | 211 | ! There are two ways to compute inverse. One is to first obtain |
324 | @@ -209,23 +218,21 @@ | |||
325 | 209 | ! hard-wired by the inversemm_linear flag, while keeping first one for testing | 218 | ! hard-wired by the inversemm_linear flag, while keeping first one for testing |
326 | 210 | ! etc. | 219 | ! etc. |
327 | 211 | !----------------------------------------------------------------------------------------! | 220 | !----------------------------------------------------------------------------------------! |
330 | 212 | 221 | if ( inversemm_linear ) then | |
329 | 213 | if (inversemm_linear) then | ||
331 | 214 | ! Calculating (S + alpha * H)^-1 * (S - alpha * H) * phi | 222 | ! Calculating (S + alpha * H)^-1 * (S - alpha * H) * phi |
335 | 215 | call inversemm(aux2,aux3) | 223 | call inversemm(LHS, RHS) |
336 | 216 | ! Compying phi_evolved back to phi | 224 | ! Copying phi_evolved back to phi |
337 | 217 | call m_add(aux3,'n',phi,cmplx(1.0_dp,0.0_dp,dp),cmplx(0.0_dp,0.0_dp,dp),m_operation) | 225 | call m_add(RHS, 'n', phi, cONE, cZERO, m_operation) |
338 | 218 | else | 226 | else |
339 | 219 | ! Calculating inverse of (S + alpha * H) | 227 | ! Calculating inverse of (S + alpha * H) |
343 | 220 | call getinverse(aux2) | 228 | call getinverse(LHS) |
344 | 221 | !(S + alpha * H)^-1 * (S - alpha * H) * phi | 229 | ! (S + alpha * H)^-1 * (S - alpha * H) * phi |
345 | 222 | call mm_multiply(aux2,'n',aux3,'n',phi,cmplx(1.0,0.0,dp),cmplx(0.0,0.0,dp),m_operation) | 230 | call mm_multiply(LHS, 'n', RHS, 'n', phi, cONE, cZERO, m_operation) |
346 | 223 | endif | 231 | endif |
352 | 224 | ! | 232 | |
353 | 225 | call m_deallocate(aux1) | 233 | call m_deallocate(LHS) |
354 | 226 | call m_deallocate(aux2) | 234 | call m_deallocate(RHS) |
355 | 227 | call m_deallocate(aux3) | 235 | |
351 | 228 | ! | ||
356 | 229 | END SUBROUTINE Uphi | 236 | END SUBROUTINE Uphi |
357 | 230 | !------------------------------------------------------------------------------------! | 237 | !------------------------------------------------------------------------------------! |
358 | 231 | SUBROUTINE evol1new(Hauxms, Sauxms, no, ispin, & | 238 | SUBROUTINE evol1new(Hauxms, Sauxms, no, ispin, & |
359 | @@ -259,8 +266,13 @@ | |||
360 | 259 | ! | 266 | ! |
361 | 260 | type(matrix),intent(in) :: Hauxms, Sauxms | 267 | type(matrix),intent(in) :: Hauxms, Sauxms |
362 | 261 | type(matrix),allocatable,save :: Hsve(:) | 268 | type(matrix),allocatable,save :: Hsve(:) |
365 | 262 | character(5) :: m_storage | 269 | #ifdef MPI |
366 | 263 | character(3) :: m_operation | 270 | character(len=5), parameter :: m_storage = 'pzdbc' |
367 | 271 | character(len=3), parameter :: m_operation = 'lap' | ||
368 | 272 | #else | ||
369 | 273 | character(len=5), parameter :: m_storage = 'szden' | ||
370 | 274 | character(len=5), parameter :: m_operation = 'lap' | ||
371 | 275 | #endif | ||
372 | 264 | logical :: extrapol | 276 | logical :: extrapol |
373 | 265 | ! Internal variables ... | 277 | ! Internal variables ... |
374 | 266 | integer :: i, l | 278 | integer :: i, l |
375 | @@ -268,14 +280,7 @@ | |||
376 | 268 | logical, save :: fsttim(2) = (/.true. , .true./) | 280 | logical, save :: fsttim(2) = (/.true. , .true./) |
377 | 269 | logical, save :: frsttime = .true. | 281 | logical, save :: frsttime = .true. |
378 | 270 | save :: deltat | 282 | save :: deltat |
387 | 271 | ! | 283 | |
380 | 272 | #ifdef MPI | ||
381 | 273 | m_storage='pzdbc' | ||
382 | 274 | m_operation='lap' | ||
383 | 275 | #else | ||
384 | 276 | m_storage='szden' | ||
385 | 277 | m_operation='lap' | ||
386 | 278 | #endif | ||
388 | 279 | if (frsttime) then | 284 | if (frsttime) then |
389 | 280 | !nstp is the number of "substeps" in the electronic evolution | 285 | !nstp is the number of "substeps" in the electronic evolution |
390 | 281 | !the evolution operator is applied in each substep although | 286 | !the evolution operator is applied in each substep although |
391 | @@ -283,10 +288,10 @@ | |||
392 | 283 | !a SCF Hamiltonian | 288 | !a SCF Hamiltonian |
393 | 284 | deltat=delt/0.04837769d0/dble(nstp) | 289 | deltat=delt/0.04837769d0/dble(nstp) |
394 | 285 | if (Node.eq.0) then | 290 | if (Node.eq.0) then |
399 | 286 | write(6,*) 'cn_evolg: TDED time step (fs) = ',delt | 291 | write(6,'(/a,f16.6)') 'cn_evolg: TDED time step (fs) = ',delt |
400 | 287 | if (extrapol) then | 292 | if (extrapol) then |
401 | 288 | write(6,*) 'cn_evolg: TDED time sub-step (fs) = ',delt/nstp | 293 | write(6,'(a,f16.6)') 'cn_evolg: TDED time sub-step (fs) = ',delt/nstp |
402 | 289 | end if | 294 | end if |
403 | 290 | end if | 295 | end if |
404 | 291 | allocate(Hsve(nspin)) | 296 | allocate(Hsve(nspin)) |
405 | 292 | do i=1, nspin | 297 | do i=1, nspin |
406 | 293 | 298 | ||
407 | === modified file 'Src/cranknic_evolk.F90' | |||
408 | --- Src/cranknic_evolk.F90 2017-08-18 18:36:36 +0000 | |||
409 | +++ Src/cranknic_evolk.F90 2017-10-03 17:43:24 +0000 | |||
410 | @@ -43,21 +43,20 @@ | |||
411 | 43 | 43 | ||
412 | 44 | TYPE(matrix) :: Hauxms, Sauxms, wfaux1, wfaux2 | 44 | TYPE(matrix) :: Hauxms, Sauxms, wfaux1, wfaux2 |
413 | 45 | 45 | ||
416 | 46 | CHARACTER(LEN=3) :: m_operation | 46 | #ifdef MPI |
417 | 47 | CHARACTER(LEN=5) :: m_storage | 47 | character(len=5), parameter :: m_storage = 'pzdbc' |
418 | 48 | character(len=3), parameter :: m_operation = 'lap' | ||
419 | 49 | #else | ||
420 | 50 | character(len=5), parameter :: m_storage = 'szden' | ||
421 | 51 | character(len=5), parameter :: m_operation = 'lap' | ||
422 | 52 | #endif | ||
423 | 48 | 53 | ||
424 | 49 | COMPLEX(dp) :: cvar1, cvar2 | 54 | COMPLEX(dp) :: cvar1, cvar2 |
425 | 50 | 55 | ||
426 | 51 | REAL(dp) :: kxij, ckxij, skxij | 56 | REAL(dp) :: kxij, ckxij, skxij |
427 | 52 | INTEGER :: ik, ispin, i, j, io, jo, ind, juo, nocc | 57 | INTEGER :: ik, ispin, i, j, io, jo, ind, juo, nocc |
428 | 53 | LOGICAL, SAVE :: firstime = .true. | 58 | LOGICAL, SAVE :: firstime = .true. |
436 | 54 | #ifdef MPI | 59 | |
430 | 55 | m_storage = 'pzdbc' | ||
431 | 56 | m_operation = 'lap' | ||
432 | 57 | #else | ||
433 | 58 | m_storage = 'szden' | ||
434 | 59 | m_operation = 'lap' | ||
435 | 60 | #endif | ||
437 | 61 | #ifdef DEBUG | 60 | #ifdef DEBUG |
438 | 62 | call write_debug( ' PRE cn_evolk' ) | 61 | call write_debug( ' PRE cn_evolk' ) |
439 | 63 | #endif | 62 | #endif |
440 | @@ -143,21 +142,19 @@ | |||
441 | 143 | TYPE(matrix) :: Hauxms, Sauxms | 142 | TYPE(matrix) :: Hauxms, Sauxms |
442 | 144 | INTEGER :: i, j, l, ik, ispin | 143 | INTEGER :: i, j, l, ik, ispin |
443 | 145 | REAL(dp) :: delt, deltat, rvar1 | 144 | REAL(dp) :: delt, deltat, rvar1 |
446 | 146 | CHARACTER(3) :: m_operation | 145 | #ifdef MPI |
447 | 147 | CHARACTER(5) :: m_storage | 146 | character(len=5), parameter :: m_storage = 'pzdbc' |
448 | 147 | character(len=3), parameter :: m_operation = 'lap' | ||
449 | 148 | #else | ||
450 | 149 | character(len=5), parameter :: m_storage = 'szden' | ||
451 | 150 | character(len=5), parameter :: m_operation = 'lap' | ||
452 | 151 | #endif | ||
453 | 148 | 152 | ||
454 | 149 | COMPLEX(dp) :: alpha | 153 | COMPLEX(dp) :: alpha |
455 | 150 | 154 | ||
456 | 151 | LOGICAL, SAVE :: firsttime = .true. | 155 | LOGICAL, SAVE :: firsttime = .true. |
457 | 152 | LOGICAL, DIMENSION (:,:), ALLOCATABLE, SAVE :: firstimeK | 156 | LOGICAL, DIMENSION (:,:), ALLOCATABLE, SAVE :: firstimeK |
466 | 153 | #ifdef MPI | 157 | |
459 | 154 | m_storage = 'pzdbc' | ||
460 | 155 | m_operation = 'lap' | ||
461 | 156 | #else | ||
462 | 157 | m_storage = 'szden' | ||
463 | 158 | m_operation = 'lap' | ||
464 | 159 | #endif | ||
465 | 160 | ! | ||
467 | 161 | IF(firsttime) THEN | 158 | IF(firsttime) THEN |
468 | 162 | deltat = delt/0.04837769d0/dble(ntded_sub) | 159 | deltat = delt/0.04837769d0/dble(ntded_sub) |
469 | 163 | IF (IOnode) THEN | 160 | IF (IOnode) THEN |
470 | 164 | 161 | ||
471 | === modified file 'Src/diag.F90' | |||
472 | --- Src/diag.F90 2017-08-07 10:57:47 +0000 | |||
473 | +++ Src/diag.F90 2017-10-03 17:43:24 +0000 | |||
474 | @@ -176,6 +176,9 @@ | |||
475 | 176 | end subroutine diag_exit | 176 | end subroutine diag_exit |
476 | 177 | 177 | ||
477 | 178 | subroutine diag_descinit(N, NR, BlockSize, desc, iC) | 178 | subroutine diag_descinit(N, NR, BlockSize, desc, iC) |
478 | 179 | #ifdef MPI | ||
479 | 180 | use mpi_siesta, only: MPI_Comm_World | ||
480 | 181 | #endif | ||
481 | 179 | integer, intent(in) :: N, NR, BlockSize | 182 | integer, intent(in) :: N, NR, BlockSize |
482 | 180 | integer, intent(inout) :: desc(9) | 183 | integer, intent(inout) :: desc(9) |
483 | 181 | integer, intent(in), optional :: iC | 184 | integer, intent(in), optional :: iC |
484 | @@ -184,6 +187,7 @@ | |||
485 | 184 | if ( present(iC) ) then | 187 | if ( present(iC) ) then |
486 | 185 | call descinit(desc,N,N,BlockSize,BlockSize,0,0,iC,NR,ierr) | 188 | call descinit(desc,N,N,BlockSize,BlockSize,0,0,iC,NR,ierr) |
487 | 186 | else | 189 | else |
488 | 190 | if ( iCTXT < 0 ) iCTXT = MPI_Comm_World | ||
489 | 187 | call descinit(desc,N,N,BlockSize,BlockSize,0,0,iCTXT,NR,ierr) | 191 | call descinit(desc,N,N,BlockSize,BlockSize,0,0,iCTXT,NR,ierr) |
490 | 188 | end if | 192 | end if |
491 | 189 | if ( ierr /= 0 ) & | 193 | if ( ierr /= 0 ) & |
492 | 190 | 194 | ||
493 | === modified file 'Src/m_initwf.F90' | |||
494 | --- Src/m_initwf.F90 2017-08-30 14:09:10 +0000 | |||
495 | +++ Src/m_initwf.F90 2017-10-03 17:43:24 +0000 | |||
496 | @@ -13,8 +13,6 @@ | |||
497 | 13 | private | 13 | private |
498 | 14 | ! | 14 | ! |
499 | 15 | public :: initwf | 15 | public :: initwf |
500 | 16 | ! | ||
501 | 17 | integer :: ictxt | ||
502 | 18 | 16 | ||
503 | 19 | CONTAINS | 17 | CONTAINS |
504 | 20 | ! | 18 | ! |
505 | @@ -127,7 +125,6 @@ | |||
506 | 127 | if(ParallelOverk) then | 125 | if(ParallelOverk) then |
507 | 128 | call die ('initwf: TDDFT is not parallelized over k-points.') | 126 | call die ('initwf: TDDFT is not parallelized over k-points.') |
508 | 129 | end if | 127 | end if |
509 | 130 | ictxt = MPI_Comm_World | ||
510 | 131 | #endif | 128 | #endif |
511 | 132 | ! Read spin-spiral wavevector (if defined) | 129 | ! Read spin-spiral wavevector (if defined) |
512 | 133 | call readsp( qspiral, spiral ) | 130 | call readsp( qspiral, spiral ) |
513 | @@ -303,8 +300,8 @@ | |||
514 | 303 | subroutine diaggiwf(nspin,nuo,maxuo,maxnh, maxo,Haux,Saux,psi, & | 300 | subroutine diaggiwf(nspin,nuo,maxuo,maxnh, maxo,Haux,Saux,psi, & |
515 | 304 | nuotot,occup) | 301 | nuotot,occup) |
516 | 305 | #ifdef MPI | 302 | #ifdef MPI |
519 | 306 | use parallel, only : BlockSize,Node | 303 | use parallel, only : BlockSize,Node |
520 | 307 | use m_diag, only: diag_descinit | 304 | use m_diag, only: diag_descinit |
521 | 308 | #endif | 305 | #endif |
522 | 309 | ! | 306 | ! |
523 | 310 | implicit none | 307 | implicit none |
524 | @@ -322,7 +319,7 @@ | |||
525 | 322 | #endif | 319 | #endif |
526 | 323 | ! | 320 | ! |
527 | 324 | #ifdef MPI | 321 | #ifdef MPI |
529 | 325 | call diag_descinit(nuotot,nuotot,BlockSize,desch,ictxt) | 322 | call diag_descinit(nuotot,nuotot,BlockSize,desch) |
530 | 326 | #endif | 323 | #endif |
531 | 327 | ! | 324 | ! |
532 | 328 | indwf=0 | 325 | indwf=0 |
533 | @@ -338,7 +335,7 @@ | |||
534 | 338 | Haux(jo,io)=Haux(jo,io)+H(ind,ispin) | 335 | Haux(jo,io)=Haux(jo,io)+H(ind,ispin) |
535 | 339 | end do | 336 | end do |
536 | 340 | end do | 337 | end do |
538 | 341 | call rdiag(Haux,Saux,nuotot,nuo,nuotot,eo,psi(1,1,ispin),nuotot,1,ierror) | 338 | call rdiag(Haux,Saux,nuotot,nuo,nuotot,eo,psi(1,1,ispin),nuotot,1,ierror,BlockSize) |
539 | 342 | if (ierror .eq. 0) then | 339 | if (ierror .eq. 0) then |
540 | 343 | exit | 340 | exit |
541 | 344 | else if ((ierror .ne. -1) .or. (ie .eq. 10)) then | 341 | else if ((ierror .ne. -1) .or. (ie .eq. 10)) then |
542 | @@ -388,7 +385,7 @@ | |||
543 | 388 | #endif | 385 | #endif |
544 | 389 | ! | 386 | ! |
545 | 390 | #ifdef MPI | 387 | #ifdef MPI |
547 | 391 | call diag_descinit(nuotot,nuotot,BlockSize,desch,ictxt) | 388 | call diag_descinit(nuotot,nuotot,BlockSize,desch) |
548 | 392 | #endif | 389 | #endif |
549 | 393 | ! | 390 | ! |
550 | 394 | indwf=0 | 391 | indwf=0 |
551 | @@ -426,10 +423,7 @@ | |||
552 | 426 | indwf=indwf+1 | 423 | indwf=indwf+1 |
553 | 427 | do j=1,nuotot | 424 | do j=1,nuotot |
554 | 428 | #ifdef MPI | 425 | #ifdef MPI |
559 | 429 | do iuo=1,2 | 426 | call pzelget('a',' ',element,psi(:,:,:),j,ie,desch) |
556 | 430 | call pdelget('a',' ',varaux(iuo),psi(iuo,:,:),j,ie,desch) | ||
557 | 431 | enddo | ||
558 | 432 | element=cmplx(varaux(1),varaux(2),dp) | ||
560 | 433 | #else | 427 | #else |
561 | 434 | element=cmplx(psi(1,j,ie),psi(2,j,ie),dp) | 428 | element=cmplx(psi(1,j,ie),psi(2,j,ie),dp) |
562 | 435 | #endif | 429 | #endif |
563 | 436 | 430 | ||
564 | === modified file 'Src/m_inversemm.F90' | |||
565 | --- Src/m_inversemm.F90 2017-10-03 13:27:08 +0000 | |||
566 | +++ Src/m_inversemm.F90 2017-10-03 17:43:24 +0000 | |||
567 | @@ -20,7 +20,7 @@ | |||
568 | 20 | IMPLICIT NONE | 20 | IMPLICIT NONE |
569 | 21 | !**************** INPUT ***********************************! | 21 | !**************** INPUT ***********************************! |
570 | 22 | ! | 22 | ! |
572 | 23 | TYPE(matrix), INTENT(IN) :: C | 23 | TYPE(matrix), INTENT(INOUT) :: C |
573 | 24 | ! C: Matrix to be inverted before multiplication with D. | 24 | ! C: Matrix to be inverted before multiplication with D. |
574 | 25 | ! | 25 | ! |
575 | 26 | !**************** INOUT ***********************************! | 26 | !**************** INOUT ***********************************! |
576 | @@ -42,15 +42,13 @@ | |||
577 | 42 | ALLOCATE(ipiv(C%iaux1(3)+C%iaux1(5))) | 42 | ALLOCATE(ipiv(C%iaux1(3)+C%iaux1(5))) |
578 | 43 | CALL pzgesv(C%dim1,D%dim2,C%zval,1,1,C%iaux1,ipiv,D%zval,1,1,D%iaux1,info) | 43 | CALL pzgesv(C%dim1,D%dim2,C%zval,1,1,C%iaux1,ipiv,D%zval,1,1,D%iaux1,info) |
579 | 44 | IF (info .NE. 0) CALL die('ERROR: error in pzgesv') | 44 | IF (info .NE. 0) CALL die('ERROR: error in pzgesv') |
580 | 45 | DEALLOCATE(ipiv) | ||
581 | 46 | ! | ||
582 | 47 | #else | 45 | #else |
583 | 48 | ! | ||
584 | 49 | ALLOCATE(ipiv(C%dim1)) | 46 | ALLOCATE(ipiv(C%dim1)) |
585 | 50 | CALL zgesv(C%dim1,D%dim2,C%zval,C%dim1,ipiv,D%zval,D%dim1,info) | 47 | CALL zgesv(C%dim1,D%dim2,C%zval,C%dim1,ipiv,D%zval,D%dim1,info) |
586 | 51 | IF (info .NE. 0) CALL die('ERROR: error in zgsesv') | 48 | IF (info .NE. 0) CALL die('ERROR: error in zgsesv') |
587 | 49 | #endif | ||
588 | 50 | |||
589 | 52 | DEALLOCATE(ipiv) | 51 | DEALLOCATE(ipiv) |
590 | 53 | #endif | ||
591 | 54 | ! | 52 | ! |
592 | 55 | END SUBROUTINE inversemm | 53 | END SUBROUTINE inversemm |
593 | 56 | ! | 54 | ! |
594 | 57 | 55 | ||
595 | === modified file 'version.info' | |||
596 | --- version.info 2017-10-03 13:27:08 +0000 | |||
597 | +++ version.info 2017-10-03 17:43:24 +0000 | |||
598 | @@ -1,1 +1,1 @@ | |||
600 | 1 | trunk-611-tddft02-40 | 1 | trunk-611-tddft02-40--np-1 |