1! 2! Copyright (C) 2001-2009 Quantum ESPRESSO group 3! This file is distributed under the terms of the 4! GNU General Public License. See the file `License' 5! in the root directory of the present distribution, 6! or http://www.gnu.org/copyleft/gpl.txt . 7! 8MODULE qes_bcast_module 9 ! 10 ! Auto-generated code: don't edit this file 11 ! 12 ! Quantum Espresso XSD namespace: http://www.quantum-espresso.org/ns/qes/qes-1.0 13 ! 14 USE qes_types_module 15 USE io_global, ONLY : ionode 16 USE mp, ONLY : mp_bcast 17 ! 18 IMPLICIT NONE 19 ! 20 PUBLIC qes_bcast 21 ! 22 INTERFACE qes_bcast 23 MODULE PROCEDURE qes_bcast_espresso 24 MODULE PROCEDURE qes_bcast_general_info 25 MODULE PROCEDURE qes_bcast_parallel_info 26 MODULE PROCEDURE qes_bcast_input 27 MODULE PROCEDURE qes_bcast_step 28 MODULE PROCEDURE qes_bcast_output 29 MODULE PROCEDURE qes_bcast_timing 30 MODULE PROCEDURE qes_bcast_clock 31 MODULE PROCEDURE qes_bcast_control_variables 32 MODULE PROCEDURE qes_bcast_xml_format 33 MODULE PROCEDURE qes_bcast_creator 34 MODULE PROCEDURE qes_bcast_created 35 MODULE PROCEDURE qes_bcast_atomic_species 36 MODULE PROCEDURE qes_bcast_species 37 MODULE PROCEDURE qes_bcast_atomic_structure 38 MODULE PROCEDURE qes_bcast_atomic_positions 39 MODULE PROCEDURE qes_bcast_atom 40 MODULE PROCEDURE qes_bcast_wyckoff_positions 41 MODULE PROCEDURE qes_bcast_cell 42 MODULE PROCEDURE qes_bcast_dft 43 MODULE PROCEDURE qes_bcast_hybrid 44 MODULE PROCEDURE qes_bcast_qpoint_grid 45 MODULE PROCEDURE qes_bcast_dftU 46 MODULE PROCEDURE qes_bcast_HubbardCommon 47 MODULE PROCEDURE qes_bcast_HubbardJ 48 MODULE PROCEDURE qes_bcast_starting_ns 49 MODULE PROCEDURE qes_bcast_Hubbard_ns 50 MODULE PROCEDURE qes_bcast_HubbardBack 51 MODULE PROCEDURE qes_bcast_backL 52 MODULE PROCEDURE qes_bcast_vdW 53 MODULE PROCEDURE qes_bcast_spin 54 MODULE PROCEDURE qes_bcast_bands 55 MODULE PROCEDURE qes_bcast_smearing 56 MODULE PROCEDURE qes_bcast_occupations 57 MODULE PROCEDURE qes_bcast_basis 58 MODULE PROCEDURE qes_bcast_basis_set 59 MODULE PROCEDURE qes_bcast_basisSetItem 60 MODULE PROCEDURE qes_bcast_reciprocal_lattice 61 MODULE PROCEDURE qes_bcast_electron_control 62 MODULE PROCEDURE qes_bcast_k_points_IBZ 63 MODULE PROCEDURE qes_bcast_monkhorst_pack 64 MODULE PROCEDURE qes_bcast_k_point 65 MODULE PROCEDURE qes_bcast_ion_control 66 MODULE PROCEDURE qes_bcast_bfgs 67 MODULE PROCEDURE qes_bcast_md 68 MODULE PROCEDURE qes_bcast_cell_control 69 MODULE PROCEDURE qes_bcast_symmetry_flags 70 MODULE PROCEDURE qes_bcast_boundary_conditions 71 MODULE PROCEDURE qes_bcast_esm 72 MODULE PROCEDURE qes_bcast_ekin_functional 73 MODULE PROCEDURE qes_bcast_spin_constraints 74 MODULE PROCEDURE qes_bcast_electric_field 75 MODULE PROCEDURE qes_bcast_gate_settings 76 MODULE PROCEDURE qes_bcast_atomic_constraints 77 MODULE PROCEDURE qes_bcast_atomic_constraint 78 MODULE PROCEDURE qes_bcast_inputOccupations 79 MODULE PROCEDURE qes_bcast_outputElectricField 80 MODULE PROCEDURE qes_bcast_BerryPhaseOutput 81 MODULE PROCEDURE qes_bcast_dipoleOutput 82 MODULE PROCEDURE qes_bcast_finiteFieldOut 83 MODULE PROCEDURE qes_bcast_polarization 84 MODULE PROCEDURE qes_bcast_ionicPolarization 85 MODULE PROCEDURE qes_bcast_electronicPolarization 86 MODULE PROCEDURE qes_bcast_phase 87 MODULE PROCEDURE qes_bcast_gateInfo 88 MODULE PROCEDURE qes_bcast_convergence_info 89 MODULE PROCEDURE qes_bcast_scf_conv 90 MODULE PROCEDURE qes_bcast_opt_conv 91 MODULE PROCEDURE qes_bcast_algorithmic_info 92 MODULE PROCEDURE qes_bcast_symmetries 93 MODULE PROCEDURE qes_bcast_symmetry 94 MODULE PROCEDURE qes_bcast_equivalent_atoms 95 MODULE PROCEDURE qes_bcast_info 96 MODULE PROCEDURE qes_bcast_outputPBC 97 MODULE PROCEDURE qes_bcast_magnetization 98 MODULE PROCEDURE qes_bcast_total_energy 99 MODULE PROCEDURE qes_bcast_band_structure 100 MODULE PROCEDURE qes_bcast_ks_energies 101 MODULE PROCEDURE qes_bcast_closed 102 MODULE PROCEDURE qes_bcast_vector 103 MODULE PROCEDURE qes_bcast_integerVector 104 MODULE PROCEDURE qes_bcast_matrix 105 MODULE PROCEDURE qes_bcast_integerMatrix 106 MODULE PROCEDURE qes_bcast_scalarQuantity 107 END INTERFACE qes_bcast 108 ! 109 CONTAINS 110 ! 111 ! 112 SUBROUTINE qes_bcast_espresso(obj, ionode_id, comm ) 113 ! 114 IMPLICIT NONE 115 ! 116 TYPE(espresso_type), INTENT(INOUT) :: obj 117 INTEGER, INTENT(IN) :: ionode_id, comm 118 INTEGER :: i 119 ! 120 CALL mp_bcast(obj%tagname, ionode_id, comm) 121 CALL mp_bcast(obj%lwrite, ionode_id, comm) 122 CALL mp_bcast(obj%lread, ionode_id, comm) 123 ! 124 CALL mp_bcast(obj%Units_ispresent, ionode_id, comm) 125 IF (obj%Units_ispresent) & 126 CALL mp_bcast(obj%Units, ionode_id, comm) 127 CALL mp_bcast(obj%general_info_ispresent, ionode_id, comm) 128 IF (obj%general_info_ispresent) & 129 CALL qes_bcast_general_info(obj%general_info, ionode_id, comm) 130 CALL mp_bcast(obj%parallel_info_ispresent, ionode_id, comm) 131 IF (obj%parallel_info_ispresent) & 132 CALL qes_bcast_parallel_info(obj%parallel_info, ionode_id, comm) 133 CALL qes_bcast_input(obj%input, ionode_id, comm) 134 CALL mp_bcast(obj%step_ispresent, ionode_id, comm) 135 IF (obj%step_ispresent) THEN 136 CALL mp_bcast(obj%ndim_step, ionode_id, comm) 137 IF (.NOT.ionode) ALLOCATE(obj%step(obj%ndim_step)) 138 DO i=1, obj%ndim_step 139 CALL qes_bcast_step(obj%step(i), ionode_id, comm) 140 ENDDO 141 ENDIF 142 CALL mp_bcast(obj%output_ispresent, ionode_id, comm) 143 IF (obj%output_ispresent) & 144 CALL qes_bcast_output(obj%output, ionode_id, comm) 145 CALL mp_bcast(obj%status_ispresent, ionode_id, comm) 146 IF (obj%status_ispresent) & 147 CALL mp_bcast(obj%status, ionode_id, comm) 148 CALL mp_bcast(obj%cputime_ispresent, ionode_id, comm) 149 IF (obj%cputime_ispresent) & 150 CALL mp_bcast(obj%cputime, ionode_id, comm) 151 CALL mp_bcast(obj%timing_info_ispresent, ionode_id, comm) 152 IF (obj%timing_info_ispresent) & 153 CALL qes_bcast_timing(obj%timing_info, ionode_id, comm) 154 CALL mp_bcast(obj%closed_ispresent, ionode_id, comm) 155 IF (obj%closed_ispresent) & 156 CALL qes_bcast_closed(obj%closed, ionode_id, comm) 157 ! 158 END SUBROUTINE qes_bcast_espresso 159 ! 160 ! 161 SUBROUTINE qes_bcast_general_info(obj, ionode_id, comm ) 162 ! 163 IMPLICIT NONE 164 ! 165 TYPE(general_info_type), INTENT(INOUT) :: obj 166 INTEGER, INTENT(IN) :: ionode_id, comm 167 ! 168 CALL mp_bcast(obj%tagname, ionode_id, comm) 169 CALL mp_bcast(obj%lwrite, ionode_id, comm) 170 CALL mp_bcast(obj%lread, ionode_id, comm) 171 ! 172 CALL qes_bcast_xml_format(obj%xml_format, ionode_id, comm) 173 CALL qes_bcast_creator(obj%creator, ionode_id, comm) 174 CALL qes_bcast_created(obj%created, ionode_id, comm) 175 CALL mp_bcast(obj%job, ionode_id, comm) 176 ! 177 END SUBROUTINE qes_bcast_general_info 178 ! 179 ! 180 SUBROUTINE qes_bcast_parallel_info(obj, ionode_id, comm ) 181 ! 182 IMPLICIT NONE 183 ! 184 TYPE(parallel_info_type), INTENT(INOUT) :: obj 185 INTEGER, INTENT(IN) :: ionode_id, comm 186 ! 187 CALL mp_bcast(obj%tagname, ionode_id, comm) 188 CALL mp_bcast(obj%lwrite, ionode_id, comm) 189 CALL mp_bcast(obj%lread, ionode_id, comm) 190 ! 191 CALL mp_bcast(obj%nprocs, ionode_id, comm) 192 CALL mp_bcast(obj%nthreads, ionode_id, comm) 193 CALL mp_bcast(obj%ntasks, ionode_id, comm) 194 CALL mp_bcast(obj%nbgrp, ionode_id, comm) 195 CALL mp_bcast(obj%npool, ionode_id, comm) 196 CALL mp_bcast(obj%ndiag, ionode_id, comm) 197 ! 198 END SUBROUTINE qes_bcast_parallel_info 199 ! 200 ! 201 SUBROUTINE qes_bcast_input(obj, ionode_id, comm ) 202 ! 203 IMPLICIT NONE 204 ! 205 TYPE(input_type), INTENT(INOUT) :: obj 206 INTEGER, INTENT(IN) :: ionode_id, comm 207 ! 208 CALL mp_bcast(obj%tagname, ionode_id, comm) 209 CALL mp_bcast(obj%lwrite, ionode_id, comm) 210 CALL mp_bcast(obj%lread, ionode_id, comm) 211 ! 212 CALL qes_bcast_control_variables(obj%control_variables, ionode_id, comm) 213 CALL qes_bcast_atomic_species(obj%atomic_species, ionode_id, comm) 214 CALL qes_bcast_atomic_structure(obj%atomic_structure, ionode_id, comm) 215 CALL qes_bcast_dft(obj%dft, ionode_id, comm) 216 CALL qes_bcast_spin(obj%spin, ionode_id, comm) 217 CALL qes_bcast_bands(obj%bands, ionode_id, comm) 218 CALL qes_bcast_basis(obj%basis, ionode_id, comm) 219 CALL qes_bcast_electron_control(obj%electron_control, ionode_id, comm) 220 CALL qes_bcast_k_points_IBZ(obj%k_points_IBZ, ionode_id, comm) 221 CALL qes_bcast_ion_control(obj%ion_control, ionode_id, comm) 222 CALL qes_bcast_cell_control(obj%cell_control, ionode_id, comm) 223 CALL mp_bcast(obj%symmetry_flags_ispresent, ionode_id, comm) 224 IF (obj%symmetry_flags_ispresent) & 225 CALL qes_bcast_symmetry_flags(obj%symmetry_flags, ionode_id, comm) 226 CALL mp_bcast(obj%boundary_conditions_ispresent, ionode_id, comm) 227 IF (obj%boundary_conditions_ispresent) & 228 CALL qes_bcast_boundary_conditions(obj%boundary_conditions, ionode_id, comm) 229 CALL mp_bcast(obj%ekin_functional_ispresent, ionode_id, comm) 230 IF (obj%ekin_functional_ispresent) & 231 CALL qes_bcast_ekin_functional(obj%ekin_functional, ionode_id, comm) 232 CALL mp_bcast(obj%external_atomic_forces_ispresent, ionode_id, comm) 233 IF (obj%external_atomic_forces_ispresent) & 234 CALL qes_bcast_matrix(obj%external_atomic_forces, ionode_id, comm) 235 CALL mp_bcast(obj%free_positions_ispresent, ionode_id, comm) 236 IF (obj%free_positions_ispresent) & 237 CALL qes_bcast_integerMatrix(obj%free_positions, ionode_id, comm) 238 CALL mp_bcast(obj%starting_atomic_velocities_ispresent, ionode_id, comm) 239 IF (obj%starting_atomic_velocities_ispresent) & 240 CALL qes_bcast_matrix(obj%starting_atomic_velocities, ionode_id, comm) 241 CALL mp_bcast(obj%electric_field_ispresent, ionode_id, comm) 242 IF (obj%electric_field_ispresent) & 243 CALL qes_bcast_electric_field(obj%electric_field, ionode_id, comm) 244 CALL mp_bcast(obj%atomic_constraints_ispresent, ionode_id, comm) 245 IF (obj%atomic_constraints_ispresent) & 246 CALL qes_bcast_atomic_constraints(obj%atomic_constraints, ionode_id, comm) 247 CALL mp_bcast(obj%spin_constraints_ispresent, ionode_id, comm) 248 IF (obj%spin_constraints_ispresent) & 249 CALL qes_bcast_spin_constraints(obj%spin_constraints, ionode_id, comm) 250 ! 251 END SUBROUTINE qes_bcast_input 252 ! 253 ! 254 SUBROUTINE qes_bcast_step(obj, ionode_id, comm ) 255 ! 256 IMPLICIT NONE 257 ! 258 TYPE(step_type), INTENT(INOUT) :: obj 259 INTEGER, INTENT(IN) :: ionode_id, comm 260 ! 261 CALL mp_bcast(obj%tagname, ionode_id, comm) 262 CALL mp_bcast(obj%lwrite, ionode_id, comm) 263 CALL mp_bcast(obj%lread, ionode_id, comm) 264 ! 265 CALL mp_bcast(obj%n_step, ionode_id, comm) 266 CALL qes_bcast_scf_conv(obj%scf_conv, ionode_id, comm) 267 CALL qes_bcast_atomic_structure(obj%atomic_structure, ionode_id, comm) 268 CALL qes_bcast_total_energy(obj%total_energy, ionode_id, comm) 269 CALL qes_bcast_matrix(obj%forces, ionode_id, comm) 270 CALL mp_bcast(obj%stress_ispresent, ionode_id, comm) 271 IF (obj%stress_ispresent) & 272 CALL qes_bcast_matrix(obj%stress, ionode_id, comm) 273 CALL mp_bcast(obj%FCP_force_ispresent, ionode_id, comm) 274 IF (obj%FCP_force_ispresent) & 275 CALL mp_bcast(obj%FCP_force, ionode_id, comm) 276 CALL mp_bcast(obj%FCP_tot_charge_ispresent, ionode_id, comm) 277 IF (obj%FCP_tot_charge_ispresent) & 278 CALL mp_bcast(obj%FCP_tot_charge, ionode_id, comm) 279 ! 280 END SUBROUTINE qes_bcast_step 281 ! 282 ! 283 SUBROUTINE qes_bcast_output(obj, ionode_id, comm ) 284 ! 285 IMPLICIT NONE 286 ! 287 TYPE(output_type), INTENT(INOUT) :: obj 288 INTEGER, INTENT(IN) :: ionode_id, comm 289 ! 290 CALL mp_bcast(obj%tagname, ionode_id, comm) 291 CALL mp_bcast(obj%lwrite, ionode_id, comm) 292 CALL mp_bcast(obj%lread, ionode_id, comm) 293 ! 294 CALL mp_bcast(obj%convergence_info_ispresent, ionode_id, comm) 295 IF (obj%convergence_info_ispresent) & 296 CALL qes_bcast_convergence_info(obj%convergence_info, ionode_id, comm) 297 CALL qes_bcast_algorithmic_info(obj%algorithmic_info, ionode_id, comm) 298 CALL qes_bcast_atomic_species(obj%atomic_species, ionode_id, comm) 299 CALL qes_bcast_atomic_structure(obj%atomic_structure, ionode_id, comm) 300 CALL mp_bcast(obj%symmetries_ispresent, ionode_id, comm) 301 IF (obj%symmetries_ispresent) & 302 CALL qes_bcast_symmetries(obj%symmetries, ionode_id, comm) 303 CALL qes_bcast_basis_set(obj%basis_set, ionode_id, comm) 304 CALL qes_bcast_dft(obj%dft, ionode_id, comm) 305 CALL mp_bcast(obj%boundary_conditions_ispresent, ionode_id, comm) 306 IF (obj%boundary_conditions_ispresent) & 307 CALL qes_bcast_outputPBC(obj%boundary_conditions, ionode_id, comm) 308 CALL qes_bcast_magnetization(obj%magnetization, ionode_id, comm) 309 CALL qes_bcast_total_energy(obj%total_energy, ionode_id, comm) 310 CALL qes_bcast_band_structure(obj%band_structure, ionode_id, comm) 311 CALL mp_bcast(obj%forces_ispresent, ionode_id, comm) 312 IF (obj%forces_ispresent) & 313 CALL qes_bcast_matrix(obj%forces, ionode_id, comm) 314 CALL mp_bcast(obj%stress_ispresent, ionode_id, comm) 315 IF (obj%stress_ispresent) & 316 CALL qes_bcast_matrix(obj%stress, ionode_id, comm) 317 CALL mp_bcast(obj%electric_field_ispresent, ionode_id, comm) 318 IF (obj%electric_field_ispresent) & 319 CALL qes_bcast_outputElectricField(obj%electric_field, ionode_id, comm) 320 CALL mp_bcast(obj%FCP_force_ispresent, ionode_id, comm) 321 IF (obj%FCP_force_ispresent) & 322 CALL mp_bcast(obj%FCP_force, ionode_id, comm) 323 CALL mp_bcast(obj%FCP_tot_charge_ispresent, ionode_id, comm) 324 IF (obj%FCP_tot_charge_ispresent) & 325 CALL mp_bcast(obj%FCP_tot_charge, ionode_id, comm) 326 ! 327 END SUBROUTINE qes_bcast_output 328 ! 329 ! 330 SUBROUTINE qes_bcast_timing(obj, ionode_id, comm ) 331 ! 332 IMPLICIT NONE 333 ! 334 TYPE(timing_type), INTENT(INOUT) :: obj 335 INTEGER, INTENT(IN) :: ionode_id, comm 336 INTEGER :: i 337 ! 338 CALL mp_bcast(obj%tagname, ionode_id, comm) 339 CALL mp_bcast(obj%lwrite, ionode_id, comm) 340 CALL mp_bcast(obj%lread, ionode_id, comm) 341 ! 342 CALL qes_bcast_clock(obj%total, ionode_id, comm) 343 CALL mp_bcast(obj%partial_ispresent, ionode_id, comm) 344 IF (obj%partial_ispresent) THEN 345 CALL mp_bcast(obj%ndim_partial, ionode_id, comm) 346 IF (.NOT.ionode) ALLOCATE(obj%partial(obj%ndim_partial)) 347 DO i=1, obj%ndim_partial 348 CALL qes_bcast_clock(obj%partial(i), ionode_id, comm) 349 ENDDO 350 ENDIF 351 ! 352 END SUBROUTINE qes_bcast_timing 353 ! 354 ! 355 SUBROUTINE qes_bcast_clock(obj, ionode_id, comm ) 356 ! 357 IMPLICIT NONE 358 ! 359 TYPE(clock_type), INTENT(INOUT) :: obj 360 INTEGER, INTENT(IN) :: ionode_id, comm 361 ! 362 CALL mp_bcast(obj%tagname, ionode_id, comm) 363 CALL mp_bcast(obj%lwrite, ionode_id, comm) 364 CALL mp_bcast(obj%lread, ionode_id, comm) 365 ! 366 CALL mp_bcast(obj%label, ionode_id, comm) 367 CALL mp_bcast(obj%calls_ispresent, ionode_id, comm) 368 IF (obj%calls_ispresent) & 369 CALL mp_bcast(obj%calls, ionode_id, comm) 370 CALL mp_bcast(obj%cpu, ionode_id, comm) 371 CALL mp_bcast(obj%wall, ionode_id, comm) 372 ! 373 END SUBROUTINE qes_bcast_clock 374 ! 375 ! 376 SUBROUTINE qes_bcast_control_variables(obj, ionode_id, comm ) 377 ! 378 IMPLICIT NONE 379 ! 380 TYPE(control_variables_type), INTENT(INOUT) :: obj 381 INTEGER, INTENT(IN) :: ionode_id, comm 382 ! 383 CALL mp_bcast(obj%tagname, ionode_id, comm) 384 CALL mp_bcast(obj%lwrite, ionode_id, comm) 385 CALL mp_bcast(obj%lread, ionode_id, comm) 386 ! 387 CALL mp_bcast(obj%title, ionode_id, comm) 388 CALL mp_bcast(obj%calculation, ionode_id, comm) 389 CALL mp_bcast(obj%restart_mode, ionode_id, comm) 390 CALL mp_bcast(obj%prefix, ionode_id, comm) 391 CALL mp_bcast(obj%pseudo_dir, ionode_id, comm) 392 CALL mp_bcast(obj%outdir, ionode_id, comm) 393 CALL mp_bcast(obj%stress, ionode_id, comm) 394 CALL mp_bcast(obj%forces, ionode_id, comm) 395 CALL mp_bcast(obj%wf_collect, ionode_id, comm) 396 CALL mp_bcast(obj%disk_io, ionode_id, comm) 397 CALL mp_bcast(obj%max_seconds, ionode_id, comm) 398 CALL mp_bcast(obj%nstep_ispresent, ionode_id, comm) 399 IF (obj%nstep_ispresent) & 400 CALL mp_bcast(obj%nstep, ionode_id, comm) 401 CALL mp_bcast(obj%etot_conv_thr, ionode_id, comm) 402 CALL mp_bcast(obj%forc_conv_thr, ionode_id, comm) 403 CALL mp_bcast(obj%press_conv_thr, ionode_id, comm) 404 CALL mp_bcast(obj%verbosity, ionode_id, comm) 405 CALL mp_bcast(obj%print_every, ionode_id, comm) 406 ! 407 END SUBROUTINE qes_bcast_control_variables 408 ! 409 ! 410 SUBROUTINE qes_bcast_xml_format(obj, ionode_id, comm ) 411 ! 412 IMPLICIT NONE 413 ! 414 TYPE(xml_format_type), INTENT(INOUT) :: obj 415 INTEGER, INTENT(IN) :: ionode_id, comm 416 ! 417 CALL mp_bcast(obj%tagname, ionode_id, comm) 418 CALL mp_bcast(obj%lwrite, ionode_id, comm) 419 CALL mp_bcast(obj%lread, ionode_id, comm) 420 ! 421 CALL mp_bcast(obj%NAME, ionode_id, comm) 422 CALL mp_bcast(obj%VERSION, ionode_id, comm) 423 CALL mp_bcast(obj%xml_format, ionode_id, comm) 424 ! 425 END SUBROUTINE qes_bcast_xml_format 426 ! 427 ! 428 SUBROUTINE qes_bcast_creator(obj, ionode_id, comm ) 429 ! 430 IMPLICIT NONE 431 ! 432 TYPE(creator_type), INTENT(INOUT) :: obj 433 INTEGER, INTENT(IN) :: ionode_id, comm 434 ! 435 CALL mp_bcast(obj%tagname, ionode_id, comm) 436 CALL mp_bcast(obj%lwrite, ionode_id, comm) 437 CALL mp_bcast(obj%lread, ionode_id, comm) 438 ! 439 CALL mp_bcast(obj%NAME, ionode_id, comm) 440 CALL mp_bcast(obj%VERSION, ionode_id, comm) 441 CALL mp_bcast(obj%creator, ionode_id, comm) 442 ! 443 END SUBROUTINE qes_bcast_creator 444 ! 445 ! 446 SUBROUTINE qes_bcast_created(obj, ionode_id, comm ) 447 ! 448 IMPLICIT NONE 449 ! 450 TYPE(created_type), INTENT(INOUT) :: obj 451 INTEGER, INTENT(IN) :: ionode_id, comm 452 ! 453 CALL mp_bcast(obj%tagname, ionode_id, comm) 454 CALL mp_bcast(obj%lwrite, ionode_id, comm) 455 CALL mp_bcast(obj%lread, ionode_id, comm) 456 ! 457 CALL mp_bcast(obj%DATE, ionode_id, comm) 458 CALL mp_bcast(obj%TIME, ionode_id, comm) 459 CALL mp_bcast(obj%created, ionode_id, comm) 460 ! 461 END SUBROUTINE qes_bcast_created 462 ! 463 ! 464 SUBROUTINE qes_bcast_atomic_species(obj, ionode_id, comm ) 465 ! 466 IMPLICIT NONE 467 ! 468 TYPE(atomic_species_type), INTENT(INOUT) :: obj 469 INTEGER, INTENT(IN) :: ionode_id, comm 470 INTEGER :: i 471 ! 472 CALL mp_bcast(obj%tagname, ionode_id, comm) 473 CALL mp_bcast(obj%lwrite, ionode_id, comm) 474 CALL mp_bcast(obj%lread, ionode_id, comm) 475 ! 476 CALL mp_bcast(obj%ntyp, ionode_id, comm) 477 CALL mp_bcast(obj%pseudo_dir_ispresent, ionode_id, comm) 478 IF (obj%pseudo_dir_ispresent) & 479 CALL mp_bcast(obj%pseudo_dir, ionode_id, comm) 480 CALL mp_bcast(obj%ndim_species, ionode_id, comm) 481 IF (.NOT.ionode) ALLOCATE(obj%species(obj%ndim_species)) 482 DO i=1, obj%ndim_species 483 CALL qes_bcast_species(obj%species(i), ionode_id, comm) 484 ENDDO 485 ! 486 END SUBROUTINE qes_bcast_atomic_species 487 ! 488 ! 489 SUBROUTINE qes_bcast_species(obj, ionode_id, comm ) 490 ! 491 IMPLICIT NONE 492 ! 493 TYPE(species_type), INTENT(INOUT) :: obj 494 INTEGER, INTENT(IN) :: ionode_id, comm 495 ! 496 CALL mp_bcast(obj%tagname, ionode_id, comm) 497 CALL mp_bcast(obj%lwrite, ionode_id, comm) 498 CALL mp_bcast(obj%lread, ionode_id, comm) 499 ! 500 CALL mp_bcast(obj%name, ionode_id, comm) 501 CALL mp_bcast(obj%mass_ispresent, ionode_id, comm) 502 IF (obj%mass_ispresent) & 503 CALL mp_bcast(obj%mass, ionode_id, comm) 504 CALL mp_bcast(obj%pseudo_file, ionode_id, comm) 505 CALL mp_bcast(obj%starting_magnetization_ispresent, ionode_id, comm) 506 IF (obj%starting_magnetization_ispresent) & 507 CALL mp_bcast(obj%starting_magnetization, ionode_id, comm) 508 CALL mp_bcast(obj%spin_teta_ispresent, ionode_id, comm) 509 IF (obj%spin_teta_ispresent) & 510 CALL mp_bcast(obj%spin_teta, ionode_id, comm) 511 CALL mp_bcast(obj%spin_phi_ispresent, ionode_id, comm) 512 IF (obj%spin_phi_ispresent) & 513 CALL mp_bcast(obj%spin_phi, ionode_id, comm) 514 ! 515 END SUBROUTINE qes_bcast_species 516 ! 517 ! 518 SUBROUTINE qes_bcast_atomic_structure(obj, ionode_id, comm ) 519 ! 520 IMPLICIT NONE 521 ! 522 TYPE(atomic_structure_type), INTENT(INOUT) :: obj 523 INTEGER, INTENT(IN) :: ionode_id, comm 524 ! 525 CALL mp_bcast(obj%tagname, ionode_id, comm) 526 CALL mp_bcast(obj%lwrite, ionode_id, comm) 527 CALL mp_bcast(obj%lread, ionode_id, comm) 528 ! 529 CALL mp_bcast(obj%nat, ionode_id, comm) 530 CALL mp_bcast(obj%alat_ispresent, ionode_id, comm) 531 IF (obj%alat_ispresent) & 532 CALL mp_bcast(obj%alat, ionode_id, comm) 533 CALL mp_bcast(obj%bravais_index_ispresent, ionode_id, comm) 534 IF (obj%bravais_index_ispresent) & 535 CALL mp_bcast(obj%bravais_index, ionode_id, comm) 536 CALL mp_bcast(obj%alternative_axes_ispresent, ionode_id, comm) 537 IF (obj%alternative_axes_ispresent) & 538 CALL mp_bcast(obj%alternative_axes, ionode_id, comm) 539 CALL mp_bcast(obj%atomic_positions_ispresent, ionode_id, comm) 540 IF (obj%atomic_positions_ispresent) & 541 CALL qes_bcast_atomic_positions(obj%atomic_positions, ionode_id, comm) 542 CALL mp_bcast(obj%wyckoff_positions_ispresent, ionode_id, comm) 543 IF (obj%wyckoff_positions_ispresent) & 544 CALL qes_bcast_wyckoff_positions(obj%wyckoff_positions, ionode_id, comm) 545 CALL mp_bcast(obj%crystal_positions_ispresent, ionode_id, comm) 546 IF (obj%crystal_positions_ispresent) & 547 CALL qes_bcast_atomic_positions(obj%crystal_positions, ionode_id, comm) 548 CALL qes_bcast_cell(obj%cell, ionode_id, comm) 549 ! 550 END SUBROUTINE qes_bcast_atomic_structure 551 ! 552 ! 553 SUBROUTINE qes_bcast_atomic_positions(obj, ionode_id, comm ) 554 ! 555 IMPLICIT NONE 556 ! 557 TYPE(atomic_positions_type), INTENT(INOUT) :: obj 558 INTEGER, INTENT(IN) :: ionode_id, comm 559 INTEGER :: i 560 ! 561 CALL mp_bcast(obj%tagname, ionode_id, comm) 562 CALL mp_bcast(obj%lwrite, ionode_id, comm) 563 CALL mp_bcast(obj%lread, ionode_id, comm) 564 ! 565 CALL mp_bcast(obj%ndim_atom, ionode_id, comm) 566 IF (.NOT.ionode) ALLOCATE(obj%atom(obj%ndim_atom)) 567 DO i=1, obj%ndim_atom 568 CALL qes_bcast_atom(obj%atom(i), ionode_id, comm) 569 ENDDO 570 ! 571 END SUBROUTINE qes_bcast_atomic_positions 572 ! 573 ! 574 SUBROUTINE qes_bcast_atom(obj, ionode_id, comm ) 575 ! 576 IMPLICIT NONE 577 ! 578 TYPE(atom_type), INTENT(INOUT) :: obj 579 INTEGER, INTENT(IN) :: ionode_id, comm 580 ! 581 CALL mp_bcast(obj%tagname, ionode_id, comm) 582 CALL mp_bcast(obj%lwrite, ionode_id, comm) 583 CALL mp_bcast(obj%lread, ionode_id, comm) 584 ! 585 CALL mp_bcast(obj%name, ionode_id, comm) 586 CALL mp_bcast(obj%position_ispresent, ionode_id, comm) 587 IF (obj%position_ispresent) & 588 CALL mp_bcast(obj%position, ionode_id, comm) 589 CALL mp_bcast(obj%index_ispresent, ionode_id, comm) 590 IF (obj%index_ispresent) & 591 CALL mp_bcast(obj%index, ionode_id, comm) 592 CALL mp_bcast(obj%atom, ionode_id, comm) 593 ! 594 END SUBROUTINE qes_bcast_atom 595 ! 596 ! 597 SUBROUTINE qes_bcast_wyckoff_positions(obj, ionode_id, comm ) 598 ! 599 IMPLICIT NONE 600 ! 601 TYPE(wyckoff_positions_type), INTENT(INOUT) :: obj 602 INTEGER, INTENT(IN) :: ionode_id, comm 603 INTEGER :: i 604 ! 605 CALL mp_bcast(obj%tagname, ionode_id, comm) 606 CALL mp_bcast(obj%lwrite, ionode_id, comm) 607 CALL mp_bcast(obj%lread, ionode_id, comm) 608 ! 609 CALL mp_bcast(obj%space_group, ionode_id, comm) 610 CALL mp_bcast(obj%more_options_ispresent, ionode_id, comm) 611 IF (obj%more_options_ispresent) & 612 CALL mp_bcast(obj%more_options, ionode_id, comm) 613 CALL mp_bcast(obj%ndim_atom, ionode_id, comm) 614 IF (.NOT.ionode) ALLOCATE(obj%atom(obj%ndim_atom)) 615 DO i=1, obj%ndim_atom 616 CALL qes_bcast_atom(obj%atom(i), ionode_id, comm) 617 ENDDO 618 ! 619 END SUBROUTINE qes_bcast_wyckoff_positions 620 ! 621 ! 622 SUBROUTINE qes_bcast_cell(obj, ionode_id, comm ) 623 ! 624 IMPLICIT NONE 625 ! 626 TYPE(cell_type), INTENT(INOUT) :: obj 627 INTEGER, INTENT(IN) :: ionode_id, comm 628 ! 629 CALL mp_bcast(obj%tagname, ionode_id, comm) 630 CALL mp_bcast(obj%lwrite, ionode_id, comm) 631 CALL mp_bcast(obj%lread, ionode_id, comm) 632 ! 633 CALL mp_bcast(obj%a1, ionode_id, comm) 634 CALL mp_bcast(obj%a2, ionode_id, comm) 635 CALL mp_bcast(obj%a3, ionode_id, comm) 636 ! 637 END SUBROUTINE qes_bcast_cell 638 ! 639 ! 640 SUBROUTINE qes_bcast_dft(obj, ionode_id, comm ) 641 ! 642 IMPLICIT NONE 643 ! 644 TYPE(dft_type), INTENT(INOUT) :: obj 645 INTEGER, INTENT(IN) :: ionode_id, comm 646 ! 647 CALL mp_bcast(obj%tagname, ionode_id, comm) 648 CALL mp_bcast(obj%lwrite, ionode_id, comm) 649 CALL mp_bcast(obj%lread, ionode_id, comm) 650 ! 651 CALL mp_bcast(obj%functional, ionode_id, comm) 652 CALL mp_bcast(obj%hybrid_ispresent, ionode_id, comm) 653 IF (obj%hybrid_ispresent) & 654 CALL qes_bcast_hybrid(obj%hybrid, ionode_id, comm) 655 CALL mp_bcast(obj%dftU_ispresent, ionode_id, comm) 656 IF (obj%dftU_ispresent) & 657 CALL qes_bcast_dftU(obj%dftU, ionode_id, comm) 658 CALL mp_bcast(obj%vdW_ispresent, ionode_id, comm) 659 IF (obj%vdW_ispresent) & 660 CALL qes_bcast_vdW(obj%vdW, ionode_id, comm) 661 ! 662 END SUBROUTINE qes_bcast_dft 663 ! 664 ! 665 SUBROUTINE qes_bcast_hybrid(obj, ionode_id, comm ) 666 ! 667 IMPLICIT NONE 668 ! 669 TYPE(hybrid_type), INTENT(INOUT) :: obj 670 INTEGER, INTENT(IN) :: ionode_id, comm 671 ! 672 CALL mp_bcast(obj%tagname, ionode_id, comm) 673 CALL mp_bcast(obj%lwrite, ionode_id, comm) 674 CALL mp_bcast(obj%lread, ionode_id, comm) 675 ! 676 CALL mp_bcast(obj%qpoint_grid_ispresent, ionode_id, comm) 677 IF (obj%qpoint_grid_ispresent) & 678 CALL qes_bcast_qpoint_grid(obj%qpoint_grid, ionode_id, comm) 679 CALL mp_bcast(obj%ecutfock_ispresent, ionode_id, comm) 680 IF (obj%ecutfock_ispresent) & 681 CALL mp_bcast(obj%ecutfock, ionode_id, comm) 682 CALL mp_bcast(obj%exx_fraction_ispresent, ionode_id, comm) 683 IF (obj%exx_fraction_ispresent) & 684 CALL mp_bcast(obj%exx_fraction, ionode_id, comm) 685 CALL mp_bcast(obj%screening_parameter_ispresent, ionode_id, comm) 686 IF (obj%screening_parameter_ispresent) & 687 CALL mp_bcast(obj%screening_parameter, ionode_id, comm) 688 CALL mp_bcast(obj%exxdiv_treatment_ispresent, ionode_id, comm) 689 IF (obj%exxdiv_treatment_ispresent) & 690 CALL mp_bcast(obj%exxdiv_treatment, ionode_id, comm) 691 CALL mp_bcast(obj%x_gamma_extrapolation_ispresent, ionode_id, comm) 692 IF (obj%x_gamma_extrapolation_ispresent) & 693 CALL mp_bcast(obj%x_gamma_extrapolation, ionode_id, comm) 694 CALL mp_bcast(obj%ecutvcut_ispresent, ionode_id, comm) 695 IF (obj%ecutvcut_ispresent) & 696 CALL mp_bcast(obj%ecutvcut, ionode_id, comm) 697 CALL mp_bcast(obj%localization_threshold_ispresent, ionode_id, comm) 698 IF (obj%localization_threshold_ispresent) & 699 CALL mp_bcast(obj%localization_threshold, ionode_id, comm) 700 ! 701 END SUBROUTINE qes_bcast_hybrid 702 ! 703 ! 704 SUBROUTINE qes_bcast_qpoint_grid(obj, ionode_id, comm ) 705 ! 706 IMPLICIT NONE 707 ! 708 TYPE(qpoint_grid_type), INTENT(INOUT) :: obj 709 INTEGER, INTENT(IN) :: ionode_id, comm 710 ! 711 CALL mp_bcast(obj%tagname, ionode_id, comm) 712 CALL mp_bcast(obj%lwrite, ionode_id, comm) 713 CALL mp_bcast(obj%lread, ionode_id, comm) 714 ! 715 CALL mp_bcast(obj%nqx1, ionode_id, comm) 716 CALL mp_bcast(obj%nqx2, ionode_id, comm) 717 CALL mp_bcast(obj%nqx3, ionode_id, comm) 718 CALL mp_bcast(obj%qpoint_grid, ionode_id, comm) 719 ! 720 END SUBROUTINE qes_bcast_qpoint_grid 721 ! 722 ! 723 SUBROUTINE qes_bcast_dftU(obj, ionode_id, comm ) 724 ! 725 IMPLICIT NONE 726 ! 727 TYPE(dftU_type), INTENT(INOUT) :: obj 728 INTEGER, INTENT(IN) :: ionode_id, comm 729 INTEGER :: i 730 ! 731 CALL mp_bcast(obj%tagname, ionode_id, comm) 732 CALL mp_bcast(obj%lwrite, ionode_id, comm) 733 CALL mp_bcast(obj%lread, ionode_id, comm) 734 ! 735 CALL mp_bcast(obj%lda_plus_u_kind_ispresent, ionode_id, comm) 736 IF (obj%lda_plus_u_kind_ispresent) & 737 CALL mp_bcast(obj%lda_plus_u_kind, ionode_id, comm) 738 CALL mp_bcast(obj%Hubbard_U_ispresent, ionode_id, comm) 739 IF (obj%Hubbard_U_ispresent) THEN 740 CALL mp_bcast(obj%ndim_Hubbard_U, ionode_id, comm) 741 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_U(obj%ndim_Hubbard_U)) 742 DO i=1, obj%ndim_Hubbard_U 743 CALL qes_bcast_HubbardCommon(obj%Hubbard_U(i), ionode_id, comm) 744 ENDDO 745 ENDIF 746 CALL mp_bcast(obj%Hubbard_J0_ispresent, ionode_id, comm) 747 IF (obj%Hubbard_J0_ispresent) THEN 748 CALL mp_bcast(obj%ndim_Hubbard_J0, ionode_id, comm) 749 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_J0(obj%ndim_Hubbard_J0)) 750 DO i=1, obj%ndim_Hubbard_J0 751 CALL qes_bcast_HubbardCommon(obj%Hubbard_J0(i), ionode_id, comm) 752 ENDDO 753 ENDIF 754 CALL mp_bcast(obj%Hubbard_alpha_ispresent, ionode_id, comm) 755 IF (obj%Hubbard_alpha_ispresent) THEN 756 CALL mp_bcast(obj%ndim_Hubbard_alpha, ionode_id, comm) 757 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_alpha(obj%ndim_Hubbard_alpha)) 758 DO i=1, obj%ndim_Hubbard_alpha 759 CALL qes_bcast_HubbardCommon(obj%Hubbard_alpha(i), ionode_id, comm) 760 ENDDO 761 ENDIF 762 CALL mp_bcast(obj%Hubbard_beta_ispresent, ionode_id, comm) 763 IF (obj%Hubbard_beta_ispresent) THEN 764 CALL mp_bcast(obj%ndim_Hubbard_beta, ionode_id, comm) 765 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_beta(obj%ndim_Hubbard_beta)) 766 DO i=1, obj%ndim_Hubbard_beta 767 CALL qes_bcast_HubbardCommon(obj%Hubbard_beta(i), ionode_id, comm) 768 ENDDO 769 ENDIF 770 CALL mp_bcast(obj%Hubbard_J_ispresent, ionode_id, comm) 771 IF (obj%Hubbard_J_ispresent) THEN 772 CALL mp_bcast(obj%ndim_Hubbard_J, ionode_id, comm) 773 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_J(obj%ndim_Hubbard_J)) 774 DO i=1, obj%ndim_Hubbard_J 775 CALL qes_bcast_HubbardJ(obj%Hubbard_J(i), ionode_id, comm) 776 ENDDO 777 ENDIF 778 CALL mp_bcast(obj%starting_ns_ispresent, ionode_id, comm) 779 IF (obj%starting_ns_ispresent) THEN 780 CALL mp_bcast(obj%ndim_starting_ns, ionode_id, comm) 781 IF (.NOT.ionode) ALLOCATE(obj%starting_ns(obj%ndim_starting_ns)) 782 DO i=1, obj%ndim_starting_ns 783 CALL qes_bcast_starting_ns(obj%starting_ns(i), ionode_id, comm) 784 ENDDO 785 ENDIF 786 CALL mp_bcast(obj%Hubbard_ns_ispresent, ionode_id, comm) 787 IF (obj%Hubbard_ns_ispresent) THEN 788 CALL mp_bcast(obj%ndim_Hubbard_ns, ionode_id, comm) 789 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_ns(obj%ndim_Hubbard_ns)) 790 DO i=1, obj%ndim_Hubbard_ns 791 CALL qes_bcast_Hubbard_ns(obj%Hubbard_ns(i), ionode_id, comm) 792 ENDDO 793 ENDIF 794 CALL mp_bcast(obj%U_projection_type_ispresent, ionode_id, comm) 795 IF (obj%U_projection_type_ispresent) & 796 CALL mp_bcast(obj%U_projection_type, ionode_id, comm) 797 CALL mp_bcast(obj%Hubbard_back_ispresent, ionode_id, comm) 798 IF (obj%Hubbard_back_ispresent) THEN 799 CALL mp_bcast(obj%ndim_Hubbard_back, ionode_id, comm) 800 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_back(obj%ndim_Hubbard_back)) 801 DO i=1, obj%ndim_Hubbard_back 802 CALL qes_bcast_HubbardBack(obj%Hubbard_back(i), ionode_id, comm) 803 ENDDO 804 ENDIF 805 CALL mp_bcast(obj%Hubbard_U_back_ispresent, ionode_id, comm) 806 IF (obj%Hubbard_U_back_ispresent) THEN 807 CALL mp_bcast(obj%ndim_Hubbard_U_back, ionode_id, comm) 808 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_U_back(obj%ndim_Hubbard_U_back)) 809 DO i=1, obj%ndim_Hubbard_U_back 810 CALL qes_bcast_HubbardCommon(obj%Hubbard_U_back(i), ionode_id, comm) 811 ENDDO 812 ENDIF 813 CALL mp_bcast(obj%Hubbard_alpha_back_ispresent, ionode_id, comm) 814 IF (obj%Hubbard_alpha_back_ispresent) THEN 815 CALL mp_bcast(obj%ndim_Hubbard_alpha_back, ionode_id, comm) 816 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_alpha_back(obj%ndim_Hubbard_alpha_back)) 817 DO i=1, obj%ndim_Hubbard_alpha_back 818 CALL qes_bcast_HubbardCommon(obj%Hubbard_alpha_back(i), ionode_id, comm) 819 ENDDO 820 ENDIF 821 CALL mp_bcast(obj%Hubbard_ns_nc_ispresent, ionode_id, comm) 822 IF (obj%Hubbard_ns_nc_ispresent) THEN 823 CALL mp_bcast(obj%ndim_Hubbard_ns_nc, ionode_id, comm) 824 IF (.NOT.ionode) ALLOCATE(obj%Hubbard_ns_nc(obj%ndim_Hubbard_ns_nc)) 825 DO i=1, obj%ndim_Hubbard_ns_nc 826 CALL qes_bcast_Hubbard_ns(obj%Hubbard_ns_nc(i), ionode_id, comm) 827 ENDDO 828 ENDIF 829 ! 830 END SUBROUTINE qes_bcast_dftU 831 ! 832 ! 833 SUBROUTINE qes_bcast_HubbardCommon(obj, ionode_id, comm ) 834 ! 835 IMPLICIT NONE 836 ! 837 TYPE(HubbardCommon_type), INTENT(INOUT) :: obj 838 INTEGER, INTENT(IN) :: ionode_id, comm 839 ! 840 CALL mp_bcast(obj%tagname, ionode_id, comm) 841 CALL mp_bcast(obj%lwrite, ionode_id, comm) 842 CALL mp_bcast(obj%lread, ionode_id, comm) 843 ! 844 CALL mp_bcast(obj%specie, ionode_id, comm) 845 CALL mp_bcast(obj%label_ispresent, ionode_id, comm) 846 IF (obj%label_ispresent) & 847 CALL mp_bcast(obj%label, ionode_id, comm) 848 CALL mp_bcast(obj%HubbardCommon, ionode_id, comm) 849 ! 850 END SUBROUTINE qes_bcast_HubbardCommon 851 ! 852 ! 853 SUBROUTINE qes_bcast_HubbardJ(obj, ionode_id, comm ) 854 ! 855 IMPLICIT NONE 856 ! 857 TYPE(HubbardJ_type), INTENT(INOUT) :: obj 858 INTEGER, INTENT(IN) :: ionode_id, comm 859 ! 860 CALL mp_bcast(obj%tagname, ionode_id, comm) 861 CALL mp_bcast(obj%lwrite, ionode_id, comm) 862 CALL mp_bcast(obj%lread, ionode_id, comm) 863 ! 864 CALL mp_bcast(obj%specie, ionode_id, comm) 865 CALL mp_bcast(obj%label, ionode_id, comm) 866 CALL mp_bcast(obj%HubbardJ, ionode_id, comm) 867 ! 868 END SUBROUTINE qes_bcast_HubbardJ 869 ! 870 ! 871 SUBROUTINE qes_bcast_starting_ns(obj, ionode_id, comm ) 872 ! 873 IMPLICIT NONE 874 ! 875 TYPE(starting_ns_type), INTENT(INOUT) :: obj 876 INTEGER, INTENT(IN) :: ionode_id, comm 877 ! 878 CALL mp_bcast(obj%tagname, ionode_id, comm) 879 CALL mp_bcast(obj%lwrite, ionode_id, comm) 880 CALL mp_bcast(obj%lread, ionode_id, comm) 881 ! 882 CALL mp_bcast(obj%specie, ionode_id, comm) 883 CALL mp_bcast(obj%label, ionode_id, comm) 884 CALL mp_bcast(obj%spin, ionode_id, comm) 885 CALL mp_bcast(obj%size, ionode_id, comm) 886 IF (.NOT.ionode) ALLOCATE(obj%starting_ns(obj%size)) 887 CALL mp_bcast(obj%starting_ns, ionode_id, comm) 888 ! 889 END SUBROUTINE qes_bcast_starting_ns 890 ! 891 ! 892 SUBROUTINE qes_bcast_Hubbard_ns(obj, ionode_id, comm ) 893 ! 894 IMPLICIT NONE 895 ! 896 TYPE(Hubbard_ns_type), INTENT(INOUT) :: obj 897 INTEGER, INTENT(IN) :: ionode_id, comm 898 INTEGER :: length 899 INTEGER :: i 900 ! 901 CALL mp_bcast(obj%tagname, ionode_id, comm) 902 CALL mp_bcast(obj%lwrite, ionode_id, comm) 903 CALL mp_bcast(obj%lread, ionode_id, comm) 904 ! 905 CALL mp_bcast(obj%specie, ionode_id, comm) 906 CALL mp_bcast(obj%label, ionode_id, comm) 907 CALL mp_bcast(obj%spin, ionode_id, comm) 908 CALL mp_bcast(obj%index, ionode_id, comm) 909 CALL mp_bcast(obj%rank, ionode_id, comm) 910 IF (.NOT.ionode) ALLOCATE(obj%dims(obj%rank)) 911 CALL mp_bcast(obj%dims, ionode_id, comm) 912 CALL mp_bcast(obj%order, ionode_id, comm) 913 IF (.NOT. ionode) THEN 914 length = 1 915 DO i=1, obj%rank 916 length = length * obj%dims(i) 917 END DO 918 ALLOCATE (obj%Hubbard_ns(length) ) 919 ENDIF 920 CALL mp_bcast(obj%Hubbard_ns, ionode_id, comm) 921 ! 922 END SUBROUTINE qes_bcast_Hubbard_ns 923 ! 924 ! 925 SUBROUTINE qes_bcast_HubbardBack(obj, ionode_id, comm ) 926 ! 927 IMPLICIT NONE 928 ! 929 TYPE(HubbardBack_type), INTENT(INOUT) :: obj 930 INTEGER, INTENT(IN) :: ionode_id, comm 931 INTEGER :: i 932 ! 933 CALL mp_bcast(obj%tagname, ionode_id, comm) 934 CALL mp_bcast(obj%lwrite, ionode_id, comm) 935 CALL mp_bcast(obj%lread, ionode_id, comm) 936 ! 937 CALL mp_bcast(obj%species, ionode_id, comm) 938 CALL mp_bcast(obj%background, ionode_id, comm) 939 CALL mp_bcast(obj%ndim_l_number, ionode_id, comm) 940 IF (.NOT.ionode) ALLOCATE(obj%l_number(obj%ndim_l_number)) 941 DO i=1, obj%ndim_l_number 942 CALL qes_bcast_backL(obj%l_number(i), ionode_id, comm) 943 ENDDO 944 ! 945 END SUBROUTINE qes_bcast_HubbardBack 946 ! 947 ! 948 SUBROUTINE qes_bcast_backL(obj, ionode_id, comm ) 949 ! 950 IMPLICIT NONE 951 ! 952 TYPE(backL_type), INTENT(INOUT) :: obj 953 INTEGER, INTENT(IN) :: ionode_id, comm 954 ! 955 CALL mp_bcast(obj%tagname, ionode_id, comm) 956 CALL mp_bcast(obj%lwrite, ionode_id, comm) 957 CALL mp_bcast(obj%lread, ionode_id, comm) 958 ! 959 CALL mp_bcast(obj%l_index, ionode_id, comm) 960 CALL mp_bcast(obj%backL, ionode_id, comm) 961 ! 962 END SUBROUTINE qes_bcast_backL 963 ! 964 ! 965 SUBROUTINE qes_bcast_vdW(obj, ionode_id, comm ) 966 ! 967 IMPLICIT NONE 968 ! 969 TYPE(vdW_type), INTENT(INOUT) :: obj 970 INTEGER, INTENT(IN) :: ionode_id, comm 971 INTEGER :: i 972 ! 973 CALL mp_bcast(obj%tagname, ionode_id, comm) 974 CALL mp_bcast(obj%lwrite, ionode_id, comm) 975 CALL mp_bcast(obj%lread, ionode_id, comm) 976 ! 977 CALL mp_bcast(obj%vdw_corr_ispresent, ionode_id, comm) 978 IF (obj%vdw_corr_ispresent) & 979 CALL mp_bcast(obj%vdw_corr, ionode_id, comm) 980 CALL mp_bcast(obj%dftd3_version_ispresent, ionode_id, comm) 981 IF (obj%dftd3_version_ispresent) & 982 CALL mp_bcast(obj%dftd3_version, ionode_id, comm) 983 CALL mp_bcast(obj%dftd3_threebody_ispresent, ionode_id, comm) 984 IF (obj%dftd3_threebody_ispresent) & 985 CALL mp_bcast(obj%dftd3_threebody, ionode_id, comm) 986 CALL mp_bcast(obj%non_local_term_ispresent, ionode_id, comm) 987 IF (obj%non_local_term_ispresent) & 988 CALL mp_bcast(obj%non_local_term, ionode_id, comm) 989 CALL mp_bcast(obj%functional_ispresent, ionode_id, comm) 990 IF (obj%functional_ispresent) & 991 CALL mp_bcast(obj%functional, ionode_id, comm) 992 CALL mp_bcast(obj%total_energy_term_ispresent, ionode_id, comm) 993 IF (obj%total_energy_term_ispresent) & 994 CALL mp_bcast(obj%total_energy_term, ionode_id, comm) 995 CALL mp_bcast(obj%london_s6_ispresent, ionode_id, comm) 996 IF (obj%london_s6_ispresent) & 997 CALL mp_bcast(obj%london_s6, ionode_id, comm) 998 CALL mp_bcast(obj%ts_vdw_econv_thr_ispresent, ionode_id, comm) 999 IF (obj%ts_vdw_econv_thr_ispresent) & 1000 CALL mp_bcast(obj%ts_vdw_econv_thr, ionode_id, comm) 1001 CALL mp_bcast(obj%ts_vdw_isolated_ispresent, ionode_id, comm) 1002 IF (obj%ts_vdw_isolated_ispresent) & 1003 CALL mp_bcast(obj%ts_vdw_isolated, ionode_id, comm) 1004 CALL mp_bcast(obj%london_rcut_ispresent, ionode_id, comm) 1005 IF (obj%london_rcut_ispresent) & 1006 CALL mp_bcast(obj%london_rcut, ionode_id, comm) 1007 CALL mp_bcast(obj%xdm_a1_ispresent, ionode_id, comm) 1008 IF (obj%xdm_a1_ispresent) & 1009 CALL mp_bcast(obj%xdm_a1, ionode_id, comm) 1010 CALL mp_bcast(obj%xdm_a2_ispresent, ionode_id, comm) 1011 IF (obj%xdm_a2_ispresent) & 1012 CALL mp_bcast(obj%xdm_a2, ionode_id, comm) 1013 CALL mp_bcast(obj%london_c6_ispresent, ionode_id, comm) 1014 IF (obj%london_c6_ispresent) THEN 1015 CALL mp_bcast(obj%ndim_london_c6, ionode_id, comm) 1016 IF (.NOT.ionode) ALLOCATE(obj%london_c6(obj%ndim_london_c6)) 1017 DO i=1, obj%ndim_london_c6 1018 CALL qes_bcast_HubbardCommon(obj%london_c6(i), ionode_id, comm) 1019 ENDDO 1020 ENDIF 1021 ! 1022 END SUBROUTINE qes_bcast_vdW 1023 ! 1024 ! 1025 SUBROUTINE qes_bcast_spin(obj, ionode_id, comm ) 1026 ! 1027 IMPLICIT NONE 1028 ! 1029 TYPE(spin_type), INTENT(INOUT) :: obj 1030 INTEGER, INTENT(IN) :: ionode_id, comm 1031 ! 1032 CALL mp_bcast(obj%tagname, ionode_id, comm) 1033 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1034 CALL mp_bcast(obj%lread, ionode_id, comm) 1035 ! 1036 CALL mp_bcast(obj%lsda, ionode_id, comm) 1037 CALL mp_bcast(obj%noncolin, ionode_id, comm) 1038 CALL mp_bcast(obj%spinorbit, ionode_id, comm) 1039 ! 1040 END SUBROUTINE qes_bcast_spin 1041 ! 1042 ! 1043 SUBROUTINE qes_bcast_bands(obj, ionode_id, comm ) 1044 ! 1045 IMPLICIT NONE 1046 ! 1047 TYPE(bands_type), INTENT(INOUT) :: obj 1048 INTEGER, INTENT(IN) :: ionode_id, comm 1049 INTEGER :: i 1050 ! 1051 CALL mp_bcast(obj%tagname, ionode_id, comm) 1052 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1053 CALL mp_bcast(obj%lread, ionode_id, comm) 1054 ! 1055 CALL mp_bcast(obj%nbnd_ispresent, ionode_id, comm) 1056 IF (obj%nbnd_ispresent) & 1057 CALL mp_bcast(obj%nbnd, ionode_id, comm) 1058 CALL mp_bcast(obj%smearing_ispresent, ionode_id, comm) 1059 IF (obj%smearing_ispresent) & 1060 CALL qes_bcast_smearing(obj%smearing, ionode_id, comm) 1061 CALL mp_bcast(obj%tot_charge_ispresent, ionode_id, comm) 1062 IF (obj%tot_charge_ispresent) & 1063 CALL mp_bcast(obj%tot_charge, ionode_id, comm) 1064 CALL mp_bcast(obj%tot_magnetization_ispresent, ionode_id, comm) 1065 IF (obj%tot_magnetization_ispresent) & 1066 CALL mp_bcast(obj%tot_magnetization, ionode_id, comm) 1067 CALL qes_bcast_occupations(obj%occupations, ionode_id, comm) 1068 CALL mp_bcast(obj%inputOccupations_ispresent, ionode_id, comm) 1069 IF (obj%inputOccupations_ispresent) THEN 1070 CALL mp_bcast(obj%ndim_inputOccupations, ionode_id, comm) 1071 IF (.NOT.ionode) ALLOCATE(obj%inputOccupations(obj%ndim_inputOccupations)) 1072 DO i=1, obj%ndim_inputOccupations 1073 CALL qes_bcast_inputOccupations(obj%inputOccupations(i), ionode_id, comm) 1074 ENDDO 1075 ENDIF 1076 ! 1077 END SUBROUTINE qes_bcast_bands 1078 ! 1079 ! 1080 SUBROUTINE qes_bcast_smearing(obj, ionode_id, comm ) 1081 ! 1082 IMPLICIT NONE 1083 ! 1084 TYPE(smearing_type), INTENT(INOUT) :: obj 1085 INTEGER, INTENT(IN) :: ionode_id, comm 1086 ! 1087 CALL mp_bcast(obj%tagname, ionode_id, comm) 1088 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1089 CALL mp_bcast(obj%lread, ionode_id, comm) 1090 ! 1091 CALL mp_bcast(obj%degauss, ionode_id, comm) 1092 CALL mp_bcast(obj%smearing, ionode_id, comm) 1093 ! 1094 END SUBROUTINE qes_bcast_smearing 1095 ! 1096 ! 1097 SUBROUTINE qes_bcast_occupations(obj, ionode_id, comm ) 1098 ! 1099 IMPLICIT NONE 1100 ! 1101 TYPE(occupations_type), INTENT(INOUT) :: obj 1102 INTEGER, INTENT(IN) :: ionode_id, comm 1103 ! 1104 CALL mp_bcast(obj%tagname, ionode_id, comm) 1105 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1106 CALL mp_bcast(obj%lread, ionode_id, comm) 1107 ! 1108 CALL mp_bcast(obj%spin_ispresent, ionode_id, comm) 1109 IF (obj%spin_ispresent) & 1110 CALL mp_bcast(obj%spin, ionode_id, comm) 1111 CALL mp_bcast(obj%occupations, ionode_id, comm) 1112 ! 1113 END SUBROUTINE qes_bcast_occupations 1114 ! 1115 ! 1116 SUBROUTINE qes_bcast_basis(obj, ionode_id, comm ) 1117 ! 1118 IMPLICIT NONE 1119 ! 1120 TYPE(basis_type), INTENT(INOUT) :: obj 1121 INTEGER, INTENT(IN) :: ionode_id, comm 1122 ! 1123 CALL mp_bcast(obj%tagname, ionode_id, comm) 1124 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1125 CALL mp_bcast(obj%lread, ionode_id, comm) 1126 ! 1127 CALL mp_bcast(obj%gamma_only_ispresent, ionode_id, comm) 1128 IF (obj%gamma_only_ispresent) & 1129 CALL mp_bcast(obj%gamma_only, ionode_id, comm) 1130 CALL mp_bcast(obj%ecutwfc, ionode_id, comm) 1131 CALL mp_bcast(obj%ecutrho_ispresent, ionode_id, comm) 1132 IF (obj%ecutrho_ispresent) & 1133 CALL mp_bcast(obj%ecutrho, ionode_id, comm) 1134 CALL mp_bcast(obj%fft_grid_ispresent, ionode_id, comm) 1135 IF (obj%fft_grid_ispresent) & 1136 CALL qes_bcast_basisSetItem(obj%fft_grid, ionode_id, comm) 1137 CALL mp_bcast(obj%fft_smooth_ispresent, ionode_id, comm) 1138 IF (obj%fft_smooth_ispresent) & 1139 CALL qes_bcast_basisSetItem(obj%fft_smooth, ionode_id, comm) 1140 CALL mp_bcast(obj%fft_box_ispresent, ionode_id, comm) 1141 IF (obj%fft_box_ispresent) & 1142 CALL qes_bcast_basisSetItem(obj%fft_box, ionode_id, comm) 1143 ! 1144 END SUBROUTINE qes_bcast_basis 1145 ! 1146 ! 1147 SUBROUTINE qes_bcast_basis_set(obj, ionode_id, comm ) 1148 ! 1149 IMPLICIT NONE 1150 ! 1151 TYPE(basis_set_type), INTENT(INOUT) :: obj 1152 INTEGER, INTENT(IN) :: ionode_id, comm 1153 ! 1154 CALL mp_bcast(obj%tagname, ionode_id, comm) 1155 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1156 CALL mp_bcast(obj%lread, ionode_id, comm) 1157 ! 1158 CALL mp_bcast(obj%gamma_only_ispresent, ionode_id, comm) 1159 IF (obj%gamma_only_ispresent) & 1160 CALL mp_bcast(obj%gamma_only, ionode_id, comm) 1161 CALL mp_bcast(obj%ecutwfc, ionode_id, comm) 1162 CALL mp_bcast(obj%ecutrho_ispresent, ionode_id, comm) 1163 IF (obj%ecutrho_ispresent) & 1164 CALL mp_bcast(obj%ecutrho, ionode_id, comm) 1165 CALL qes_bcast_basisSetItem(obj%fft_grid, ionode_id, comm) 1166 CALL mp_bcast(obj%fft_smooth_ispresent, ionode_id, comm) 1167 IF (obj%fft_smooth_ispresent) & 1168 CALL qes_bcast_basisSetItem(obj%fft_smooth, ionode_id, comm) 1169 CALL mp_bcast(obj%fft_box_ispresent, ionode_id, comm) 1170 IF (obj%fft_box_ispresent) & 1171 CALL qes_bcast_basisSetItem(obj%fft_box, ionode_id, comm) 1172 CALL mp_bcast(obj%ngm, ionode_id, comm) 1173 CALL mp_bcast(obj%ngms_ispresent, ionode_id, comm) 1174 IF (obj%ngms_ispresent) & 1175 CALL mp_bcast(obj%ngms, ionode_id, comm) 1176 CALL mp_bcast(obj%npwx, ionode_id, comm) 1177 CALL qes_bcast_reciprocal_lattice(obj%reciprocal_lattice, ionode_id, comm) 1178 ! 1179 END SUBROUTINE qes_bcast_basis_set 1180 ! 1181 ! 1182 SUBROUTINE qes_bcast_basisSetItem(obj, ionode_id, comm ) 1183 ! 1184 IMPLICIT NONE 1185 ! 1186 TYPE(basisSetItem_type), INTENT(INOUT) :: obj 1187 INTEGER, INTENT(IN) :: ionode_id, comm 1188 ! 1189 CALL mp_bcast(obj%tagname, ionode_id, comm) 1190 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1191 CALL mp_bcast(obj%lread, ionode_id, comm) 1192 ! 1193 CALL mp_bcast(obj%nr1, ionode_id, comm) 1194 CALL mp_bcast(obj%nr2, ionode_id, comm) 1195 CALL mp_bcast(obj%nr3, ionode_id, comm) 1196 CALL mp_bcast(obj%basisSetItem, ionode_id, comm) 1197 ! 1198 END SUBROUTINE qes_bcast_basisSetItem 1199 ! 1200 ! 1201 SUBROUTINE qes_bcast_reciprocal_lattice(obj, ionode_id, comm ) 1202 ! 1203 IMPLICIT NONE 1204 ! 1205 TYPE(reciprocal_lattice_type), INTENT(INOUT) :: obj 1206 INTEGER, INTENT(IN) :: ionode_id, comm 1207 ! 1208 CALL mp_bcast(obj%tagname, ionode_id, comm) 1209 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1210 CALL mp_bcast(obj%lread, ionode_id, comm) 1211 ! 1212 CALL mp_bcast(obj%b1, ionode_id, comm) 1213 CALL mp_bcast(obj%b2, ionode_id, comm) 1214 CALL mp_bcast(obj%b3, ionode_id, comm) 1215 ! 1216 END SUBROUTINE qes_bcast_reciprocal_lattice 1217 ! 1218 ! 1219 SUBROUTINE qes_bcast_electron_control(obj, ionode_id, comm ) 1220 ! 1221 IMPLICIT NONE 1222 ! 1223 TYPE(electron_control_type), INTENT(INOUT) :: obj 1224 INTEGER, INTENT(IN) :: ionode_id, comm 1225 ! 1226 CALL mp_bcast(obj%tagname, ionode_id, comm) 1227 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1228 CALL mp_bcast(obj%lread, ionode_id, comm) 1229 ! 1230 CALL mp_bcast(obj%diagonalization, ionode_id, comm) 1231 CALL mp_bcast(obj%mixing_mode, ionode_id, comm) 1232 CALL mp_bcast(obj%mixing_beta, ionode_id, comm) 1233 CALL mp_bcast(obj%conv_thr, ionode_id, comm) 1234 CALL mp_bcast(obj%mixing_ndim, ionode_id, comm) 1235 CALL mp_bcast(obj%max_nstep, ionode_id, comm) 1236 CALL mp_bcast(obj%real_space_q_ispresent, ionode_id, comm) 1237 IF (obj%real_space_q_ispresent) & 1238 CALL mp_bcast(obj%real_space_q, ionode_id, comm) 1239 CALL mp_bcast(obj%real_space_beta_ispresent, ionode_id, comm) 1240 IF (obj%real_space_beta_ispresent) & 1241 CALL mp_bcast(obj%real_space_beta, ionode_id, comm) 1242 CALL mp_bcast(obj%tq_smoothing, ionode_id, comm) 1243 CALL mp_bcast(obj%tbeta_smoothing, ionode_id, comm) 1244 CALL mp_bcast(obj%diago_thr_init, ionode_id, comm) 1245 CALL mp_bcast(obj%diago_full_acc, ionode_id, comm) 1246 CALL mp_bcast(obj%diago_cg_maxiter_ispresent, ionode_id, comm) 1247 IF (obj%diago_cg_maxiter_ispresent) & 1248 CALL mp_bcast(obj%diago_cg_maxiter, ionode_id, comm) 1249 CALL mp_bcast(obj%diago_ppcg_maxiter_ispresent, ionode_id, comm) 1250 IF (obj%diago_ppcg_maxiter_ispresent) & 1251 CALL mp_bcast(obj%diago_ppcg_maxiter, ionode_id, comm) 1252 CALL mp_bcast(obj%diago_david_ndim_ispresent, ionode_id, comm) 1253 IF (obj%diago_david_ndim_ispresent) & 1254 CALL mp_bcast(obj%diago_david_ndim, ionode_id, comm) 1255 ! 1256 END SUBROUTINE qes_bcast_electron_control 1257 ! 1258 ! 1259 SUBROUTINE qes_bcast_k_points_IBZ(obj, ionode_id, comm ) 1260 ! 1261 IMPLICIT NONE 1262 ! 1263 TYPE(k_points_IBZ_type), INTENT(INOUT) :: obj 1264 INTEGER, INTENT(IN) :: ionode_id, comm 1265 INTEGER :: i 1266 ! 1267 CALL mp_bcast(obj%tagname, ionode_id, comm) 1268 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1269 CALL mp_bcast(obj%lread, ionode_id, comm) 1270 ! 1271 CALL mp_bcast(obj%monkhorst_pack_ispresent, ionode_id, comm) 1272 IF (obj%monkhorst_pack_ispresent) & 1273 CALL qes_bcast_monkhorst_pack(obj%monkhorst_pack, ionode_id, comm) 1274 CALL mp_bcast(obj%nk_ispresent, ionode_id, comm) 1275 IF (obj%nk_ispresent) & 1276 CALL mp_bcast(obj%nk, ionode_id, comm) 1277 CALL mp_bcast(obj%k_point_ispresent, ionode_id, comm) 1278 IF (obj%k_point_ispresent) THEN 1279 CALL mp_bcast(obj%ndim_k_point, ionode_id, comm) 1280 IF (.NOT.ionode) ALLOCATE(obj%k_point(obj%ndim_k_point)) 1281 DO i=1, obj%ndim_k_point 1282 CALL qes_bcast_k_point(obj%k_point(i), ionode_id, comm) 1283 ENDDO 1284 ENDIF 1285 ! 1286 END SUBROUTINE qes_bcast_k_points_IBZ 1287 ! 1288 ! 1289 SUBROUTINE qes_bcast_monkhorst_pack(obj, ionode_id, comm ) 1290 ! 1291 IMPLICIT NONE 1292 ! 1293 TYPE(monkhorst_pack_type), INTENT(INOUT) :: obj 1294 INTEGER, INTENT(IN) :: ionode_id, comm 1295 ! 1296 CALL mp_bcast(obj%tagname, ionode_id, comm) 1297 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1298 CALL mp_bcast(obj%lread, ionode_id, comm) 1299 ! 1300 CALL mp_bcast(obj%nk1, ionode_id, comm) 1301 CALL mp_bcast(obj%nk2, ionode_id, comm) 1302 CALL mp_bcast(obj%nk3, ionode_id, comm) 1303 CALL mp_bcast(obj%k1, ionode_id, comm) 1304 CALL mp_bcast(obj%k2, ionode_id, comm) 1305 CALL mp_bcast(obj%k3, ionode_id, comm) 1306 CALL mp_bcast(obj%monkhorst_pack, ionode_id, comm) 1307 ! 1308 END SUBROUTINE qes_bcast_monkhorst_pack 1309 ! 1310 ! 1311 SUBROUTINE qes_bcast_k_point(obj, ionode_id, comm ) 1312 ! 1313 IMPLICIT NONE 1314 ! 1315 TYPE(k_point_type), INTENT(INOUT) :: obj 1316 INTEGER, INTENT(IN) :: ionode_id, comm 1317 ! 1318 CALL mp_bcast(obj%tagname, ionode_id, comm) 1319 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1320 CALL mp_bcast(obj%lread, ionode_id, comm) 1321 ! 1322 CALL mp_bcast(obj%weight_ispresent, ionode_id, comm) 1323 IF (obj%weight_ispresent) & 1324 CALL mp_bcast(obj%weight, ionode_id, comm) 1325 CALL mp_bcast(obj%label_ispresent, ionode_id, comm) 1326 IF (obj%label_ispresent) & 1327 CALL mp_bcast(obj%label, ionode_id, comm) 1328 CALL mp_bcast(obj%k_point, ionode_id, comm) 1329 ! 1330 END SUBROUTINE qes_bcast_k_point 1331 ! 1332 ! 1333 SUBROUTINE qes_bcast_ion_control(obj, ionode_id, comm ) 1334 ! 1335 IMPLICIT NONE 1336 ! 1337 TYPE(ion_control_type), INTENT(INOUT) :: obj 1338 INTEGER, INTENT(IN) :: ionode_id, comm 1339 ! 1340 CALL mp_bcast(obj%tagname, ionode_id, comm) 1341 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1342 CALL mp_bcast(obj%lread, ionode_id, comm) 1343 ! 1344 CALL mp_bcast(obj%ion_dynamics, ionode_id, comm) 1345 CALL mp_bcast(obj%upscale_ispresent, ionode_id, comm) 1346 IF (obj%upscale_ispresent) & 1347 CALL mp_bcast(obj%upscale, ionode_id, comm) 1348 CALL mp_bcast(obj%remove_rigid_rot_ispresent, ionode_id, comm) 1349 IF (obj%remove_rigid_rot_ispresent) & 1350 CALL mp_bcast(obj%remove_rigid_rot, ionode_id, comm) 1351 CALL mp_bcast(obj%refold_pos_ispresent, ionode_id, comm) 1352 IF (obj%refold_pos_ispresent) & 1353 CALL mp_bcast(obj%refold_pos, ionode_id, comm) 1354 CALL mp_bcast(obj%bfgs_ispresent, ionode_id, comm) 1355 IF (obj%bfgs_ispresent) & 1356 CALL qes_bcast_bfgs(obj%bfgs, ionode_id, comm) 1357 CALL mp_bcast(obj%md_ispresent, ionode_id, comm) 1358 IF (obj%md_ispresent) & 1359 CALL qes_bcast_md(obj%md, ionode_id, comm) 1360 ! 1361 END SUBROUTINE qes_bcast_ion_control 1362 ! 1363 ! 1364 SUBROUTINE qes_bcast_bfgs(obj, ionode_id, comm ) 1365 ! 1366 IMPLICIT NONE 1367 ! 1368 TYPE(bfgs_type), INTENT(INOUT) :: obj 1369 INTEGER, INTENT(IN) :: ionode_id, comm 1370 ! 1371 CALL mp_bcast(obj%tagname, ionode_id, comm) 1372 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1373 CALL mp_bcast(obj%lread, ionode_id, comm) 1374 ! 1375 CALL mp_bcast(obj%ndim, ionode_id, comm) 1376 CALL mp_bcast(obj%trust_radius_min, ionode_id, comm) 1377 CALL mp_bcast(obj%trust_radius_max, ionode_id, comm) 1378 CALL mp_bcast(obj%trust_radius_init, ionode_id, comm) 1379 CALL mp_bcast(obj%w1, ionode_id, comm) 1380 CALL mp_bcast(obj%w2, ionode_id, comm) 1381 ! 1382 END SUBROUTINE qes_bcast_bfgs 1383 ! 1384 ! 1385 SUBROUTINE qes_bcast_md(obj, ionode_id, comm ) 1386 ! 1387 IMPLICIT NONE 1388 ! 1389 TYPE(md_type), INTENT(INOUT) :: obj 1390 INTEGER, INTENT(IN) :: ionode_id, comm 1391 ! 1392 CALL mp_bcast(obj%tagname, ionode_id, comm) 1393 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1394 CALL mp_bcast(obj%lread, ionode_id, comm) 1395 ! 1396 CALL mp_bcast(obj%pot_extrapolation, ionode_id, comm) 1397 CALL mp_bcast(obj%wfc_extrapolation, ionode_id, comm) 1398 CALL mp_bcast(obj%ion_temperature, ionode_id, comm) 1399 CALL mp_bcast(obj%timestep, ionode_id, comm) 1400 CALL mp_bcast(obj%tempw, ionode_id, comm) 1401 CALL mp_bcast(obj%tolp, ionode_id, comm) 1402 CALL mp_bcast(obj%deltaT, ionode_id, comm) 1403 CALL mp_bcast(obj%nraise, ionode_id, comm) 1404 ! 1405 END SUBROUTINE qes_bcast_md 1406 ! 1407 ! 1408 SUBROUTINE qes_bcast_cell_control(obj, ionode_id, comm ) 1409 ! 1410 IMPLICIT NONE 1411 ! 1412 TYPE(cell_control_type), INTENT(INOUT) :: obj 1413 INTEGER, INTENT(IN) :: ionode_id, comm 1414 ! 1415 CALL mp_bcast(obj%tagname, ionode_id, comm) 1416 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1417 CALL mp_bcast(obj%lread, ionode_id, comm) 1418 ! 1419 CALL mp_bcast(obj%cell_dynamics, ionode_id, comm) 1420 CALL mp_bcast(obj%pressure, ionode_id, comm) 1421 CALL mp_bcast(obj%wmass_ispresent, ionode_id, comm) 1422 IF (obj%wmass_ispresent) & 1423 CALL mp_bcast(obj%wmass, ionode_id, comm) 1424 CALL mp_bcast(obj%cell_factor_ispresent, ionode_id, comm) 1425 IF (obj%cell_factor_ispresent) & 1426 CALL mp_bcast(obj%cell_factor, ionode_id, comm) 1427 CALL mp_bcast(obj%fix_volume_ispresent, ionode_id, comm) 1428 IF (obj%fix_volume_ispresent) & 1429 CALL mp_bcast(obj%fix_volume, ionode_id, comm) 1430 CALL mp_bcast(obj%fix_area_ispresent, ionode_id, comm) 1431 IF (obj%fix_area_ispresent) & 1432 CALL mp_bcast(obj%fix_area, ionode_id, comm) 1433 CALL mp_bcast(obj%isotropic_ispresent, ionode_id, comm) 1434 IF (obj%isotropic_ispresent) & 1435 CALL mp_bcast(obj%isotropic, ionode_id, comm) 1436 CALL mp_bcast(obj%free_cell_ispresent, ionode_id, comm) 1437 IF (obj%free_cell_ispresent) & 1438 CALL qes_bcast_integerMatrix(obj%free_cell, ionode_id, comm) 1439 ! 1440 END SUBROUTINE qes_bcast_cell_control 1441 ! 1442 ! 1443 SUBROUTINE qes_bcast_symmetry_flags(obj, ionode_id, comm ) 1444 ! 1445 IMPLICIT NONE 1446 ! 1447 TYPE(symmetry_flags_type), INTENT(INOUT) :: obj 1448 INTEGER, INTENT(IN) :: ionode_id, comm 1449 ! 1450 CALL mp_bcast(obj%tagname, ionode_id, comm) 1451 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1452 CALL mp_bcast(obj%lread, ionode_id, comm) 1453 ! 1454 CALL mp_bcast(obj%nosym, ionode_id, comm) 1455 CALL mp_bcast(obj%nosym_evc, ionode_id, comm) 1456 CALL mp_bcast(obj%noinv, ionode_id, comm) 1457 CALL mp_bcast(obj%no_t_rev, ionode_id, comm) 1458 CALL mp_bcast(obj%force_symmorphic, ionode_id, comm) 1459 CALL mp_bcast(obj%use_all_frac, ionode_id, comm) 1460 ! 1461 END SUBROUTINE qes_bcast_symmetry_flags 1462 ! 1463 ! 1464 SUBROUTINE qes_bcast_boundary_conditions(obj, ionode_id, comm ) 1465 ! 1466 IMPLICIT NONE 1467 ! 1468 TYPE(boundary_conditions_type), INTENT(INOUT) :: obj 1469 INTEGER, INTENT(IN) :: ionode_id, comm 1470 ! 1471 CALL mp_bcast(obj%tagname, ionode_id, comm) 1472 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1473 CALL mp_bcast(obj%lread, ionode_id, comm) 1474 ! 1475 CALL mp_bcast(obj%assume_isolated, ionode_id, comm) 1476 CALL mp_bcast(obj%esm_ispresent, ionode_id, comm) 1477 IF (obj%esm_ispresent) & 1478 CALL qes_bcast_esm(obj%esm, ionode_id, comm) 1479 CALL mp_bcast(obj%fcp_opt_ispresent, ionode_id, comm) 1480 IF (obj%fcp_opt_ispresent) & 1481 CALL mp_bcast(obj%fcp_opt, ionode_id, comm) 1482 CALL mp_bcast(obj%fcp_mu_ispresent, ionode_id, comm) 1483 IF (obj%fcp_mu_ispresent) & 1484 CALL mp_bcast(obj%fcp_mu, ionode_id, comm) 1485 ! 1486 END SUBROUTINE qes_bcast_boundary_conditions 1487 ! 1488 ! 1489 SUBROUTINE qes_bcast_esm(obj, ionode_id, comm ) 1490 ! 1491 IMPLICIT NONE 1492 ! 1493 TYPE(esm_type), INTENT(INOUT) :: obj 1494 INTEGER, INTENT(IN) :: ionode_id, comm 1495 ! 1496 CALL mp_bcast(obj%tagname, ionode_id, comm) 1497 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1498 CALL mp_bcast(obj%lread, ionode_id, comm) 1499 ! 1500 CALL mp_bcast(obj%bc, ionode_id, comm) 1501 CALL mp_bcast(obj%nfit, ionode_id, comm) 1502 CALL mp_bcast(obj%w, ionode_id, comm) 1503 CALL mp_bcast(obj%efield, ionode_id, comm) 1504 ! 1505 END SUBROUTINE qes_bcast_esm 1506 ! 1507 ! 1508 SUBROUTINE qes_bcast_ekin_functional(obj, ionode_id, comm ) 1509 ! 1510 IMPLICIT NONE 1511 ! 1512 TYPE(ekin_functional_type), INTENT(INOUT) :: obj 1513 INTEGER, INTENT(IN) :: ionode_id, comm 1514 ! 1515 CALL mp_bcast(obj%tagname, ionode_id, comm) 1516 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1517 CALL mp_bcast(obj%lread, ionode_id, comm) 1518 ! 1519 CALL mp_bcast(obj%ecfixed, ionode_id, comm) 1520 CALL mp_bcast(obj%qcutz, ionode_id, comm) 1521 CALL mp_bcast(obj%q2sigma, ionode_id, comm) 1522 ! 1523 END SUBROUTINE qes_bcast_ekin_functional 1524 ! 1525 ! 1526 SUBROUTINE qes_bcast_spin_constraints(obj, ionode_id, comm ) 1527 ! 1528 IMPLICIT NONE 1529 ! 1530 TYPE(spin_constraints_type), INTENT(INOUT) :: obj 1531 INTEGER, INTENT(IN) :: ionode_id, comm 1532 ! 1533 CALL mp_bcast(obj%tagname, ionode_id, comm) 1534 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1535 CALL mp_bcast(obj%lread, ionode_id, comm) 1536 ! 1537 CALL mp_bcast(obj%spin_constraints, ionode_id, comm) 1538 CALL mp_bcast(obj%lagrange_multiplier, ionode_id, comm) 1539 CALL mp_bcast(obj%target_magnetization_ispresent, ionode_id, comm) 1540 IF (obj%target_magnetization_ispresent) & 1541 CALL mp_bcast(obj%target_magnetization, ionode_id, comm) 1542 ! 1543 END SUBROUTINE qes_bcast_spin_constraints 1544 ! 1545 ! 1546 SUBROUTINE qes_bcast_electric_field(obj, ionode_id, comm ) 1547 ! 1548 IMPLICIT NONE 1549 ! 1550 TYPE(electric_field_type), INTENT(INOUT) :: obj 1551 INTEGER, INTENT(IN) :: ionode_id, comm 1552 ! 1553 CALL mp_bcast(obj%tagname, ionode_id, comm) 1554 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1555 CALL mp_bcast(obj%lread, ionode_id, comm) 1556 ! 1557 CALL mp_bcast(obj%electric_potential, ionode_id, comm) 1558 CALL mp_bcast(obj%dipole_correction_ispresent, ionode_id, comm) 1559 IF (obj%dipole_correction_ispresent) & 1560 CALL mp_bcast(obj%dipole_correction, ionode_id, comm) 1561 CALL mp_bcast(obj%gate_settings_ispresent, ionode_id, comm) 1562 IF (obj%gate_settings_ispresent) & 1563 CALL qes_bcast_gate_settings(obj%gate_settings, ionode_id, comm) 1564 CALL mp_bcast(obj%electric_field_direction_ispresent, ionode_id, comm) 1565 IF (obj%electric_field_direction_ispresent) & 1566 CALL mp_bcast(obj%electric_field_direction, ionode_id, comm) 1567 CALL mp_bcast(obj%potential_max_position_ispresent, ionode_id, comm) 1568 IF (obj%potential_max_position_ispresent) & 1569 CALL mp_bcast(obj%potential_max_position, ionode_id, comm) 1570 CALL mp_bcast(obj%potential_decrease_width_ispresent, ionode_id, comm) 1571 IF (obj%potential_decrease_width_ispresent) & 1572 CALL mp_bcast(obj%potential_decrease_width, ionode_id, comm) 1573 CALL mp_bcast(obj%electric_field_amplitude_ispresent, ionode_id, comm) 1574 IF (obj%electric_field_amplitude_ispresent) & 1575 CALL mp_bcast(obj%electric_field_amplitude, ionode_id, comm) 1576 CALL mp_bcast(obj%electric_field_vector_ispresent, ionode_id, comm) 1577 IF (obj%electric_field_vector_ispresent) & 1578 CALL mp_bcast(obj%electric_field_vector, ionode_id, comm) 1579 CALL mp_bcast(obj%nk_per_string_ispresent, ionode_id, comm) 1580 IF (obj%nk_per_string_ispresent) & 1581 CALL mp_bcast(obj%nk_per_string, ionode_id, comm) 1582 CALL mp_bcast(obj%n_berry_cycles_ispresent, ionode_id, comm) 1583 IF (obj%n_berry_cycles_ispresent) & 1584 CALL mp_bcast(obj%n_berry_cycles, ionode_id, comm) 1585 ! 1586 END SUBROUTINE qes_bcast_electric_field 1587 ! 1588 ! 1589 SUBROUTINE qes_bcast_gate_settings(obj, ionode_id, comm ) 1590 ! 1591 IMPLICIT NONE 1592 ! 1593 TYPE(gate_settings_type), INTENT(INOUT) :: obj 1594 INTEGER, INTENT(IN) :: ionode_id, comm 1595 ! 1596 CALL mp_bcast(obj%tagname, ionode_id, comm) 1597 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1598 CALL mp_bcast(obj%lread, ionode_id, comm) 1599 ! 1600 CALL mp_bcast(obj%use_gate, ionode_id, comm) 1601 CALL mp_bcast(obj%zgate_ispresent, ionode_id, comm) 1602 IF (obj%zgate_ispresent) & 1603 CALL mp_bcast(obj%zgate, ionode_id, comm) 1604 CALL mp_bcast(obj%relaxz_ispresent, ionode_id, comm) 1605 IF (obj%relaxz_ispresent) & 1606 CALL mp_bcast(obj%relaxz, ionode_id, comm) 1607 CALL mp_bcast(obj%block_ispresent, ionode_id, comm) 1608 IF (obj%block_ispresent) & 1609 CALL mp_bcast(obj%block, ionode_id, comm) 1610 CALL mp_bcast(obj%block_1_ispresent, ionode_id, comm) 1611 IF (obj%block_1_ispresent) & 1612 CALL mp_bcast(obj%block_1, ionode_id, comm) 1613 CALL mp_bcast(obj%block_2_ispresent, ionode_id, comm) 1614 IF (obj%block_2_ispresent) & 1615 CALL mp_bcast(obj%block_2, ionode_id, comm) 1616 CALL mp_bcast(obj%block_height_ispresent, ionode_id, comm) 1617 IF (obj%block_height_ispresent) & 1618 CALL mp_bcast(obj%block_height, ionode_id, comm) 1619 ! 1620 END SUBROUTINE qes_bcast_gate_settings 1621 ! 1622 ! 1623 SUBROUTINE qes_bcast_atomic_constraints(obj, ionode_id, comm ) 1624 ! 1625 IMPLICIT NONE 1626 ! 1627 TYPE(atomic_constraints_type), INTENT(INOUT) :: obj 1628 INTEGER, INTENT(IN) :: ionode_id, comm 1629 INTEGER :: i 1630 ! 1631 CALL mp_bcast(obj%tagname, ionode_id, comm) 1632 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1633 CALL mp_bcast(obj%lread, ionode_id, comm) 1634 ! 1635 CALL mp_bcast(obj%num_of_constraints, ionode_id, comm) 1636 CALL mp_bcast(obj%tolerance, ionode_id, comm) 1637 CALL mp_bcast(obj%ndim_atomic_constraint, ionode_id, comm) 1638 IF (.NOT.ionode) ALLOCATE(obj%atomic_constraint(obj%ndim_atomic_constraint)) 1639 DO i=1, obj%ndim_atomic_constraint 1640 CALL qes_bcast_atomic_constraint(obj%atomic_constraint(i), ionode_id, comm) 1641 ENDDO 1642 ! 1643 END SUBROUTINE qes_bcast_atomic_constraints 1644 ! 1645 ! 1646 SUBROUTINE qes_bcast_atomic_constraint(obj, ionode_id, comm ) 1647 ! 1648 IMPLICIT NONE 1649 ! 1650 TYPE(atomic_constraint_type), INTENT(INOUT) :: obj 1651 INTEGER, INTENT(IN) :: ionode_id, comm 1652 ! 1653 CALL mp_bcast(obj%tagname, ionode_id, comm) 1654 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1655 CALL mp_bcast(obj%lread, ionode_id, comm) 1656 ! 1657 CALL mp_bcast(obj%constr_parms, ionode_id, comm) 1658 CALL mp_bcast(obj%constr_type, ionode_id, comm) 1659 CALL mp_bcast(obj%constr_target, ionode_id, comm) 1660 ! 1661 END SUBROUTINE qes_bcast_atomic_constraint 1662 ! 1663 ! 1664 SUBROUTINE qes_bcast_inputOccupations(obj, ionode_id, comm ) 1665 ! 1666 IMPLICIT NONE 1667 ! 1668 TYPE(inputOccupations_type), INTENT(INOUT) :: obj 1669 INTEGER, INTENT(IN) :: ionode_id, comm 1670 ! 1671 CALL mp_bcast(obj%tagname, ionode_id, comm) 1672 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1673 CALL mp_bcast(obj%lread, ionode_id, comm) 1674 ! 1675 CALL mp_bcast(obj%ispin, ionode_id, comm) 1676 CALL mp_bcast(obj%spin_factor, ionode_id, comm) 1677 CALL mp_bcast(obj%size, ionode_id, comm) 1678 IF (.NOT.ionode) ALLOCATE(obj%inputOccupations(obj%size)) 1679 CALL mp_bcast(obj%inputOccupations, ionode_id, comm) 1680 ! 1681 END SUBROUTINE qes_bcast_inputOccupations 1682 ! 1683 ! 1684 SUBROUTINE qes_bcast_outputElectricField(obj, ionode_id, comm ) 1685 ! 1686 IMPLICIT NONE 1687 ! 1688 TYPE(outputElectricField_type), INTENT(INOUT) :: obj 1689 INTEGER, INTENT(IN) :: ionode_id, comm 1690 ! 1691 CALL mp_bcast(obj%tagname, ionode_id, comm) 1692 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1693 CALL mp_bcast(obj%lread, ionode_id, comm) 1694 ! 1695 CALL mp_bcast(obj%BerryPhase_ispresent, ionode_id, comm) 1696 IF (obj%BerryPhase_ispresent) & 1697 CALL qes_bcast_BerryPhaseOutput(obj%BerryPhase, ionode_id, comm) 1698 CALL mp_bcast(obj%finiteElectricFieldInfo_ispresent, ionode_id, comm) 1699 IF (obj%finiteElectricFieldInfo_ispresent) & 1700 CALL qes_bcast_finiteFieldOut(obj%finiteElectricFieldInfo, ionode_id, comm) 1701 CALL mp_bcast(obj%dipoleInfo_ispresent, ionode_id, comm) 1702 IF (obj%dipoleInfo_ispresent) & 1703 CALL qes_bcast_dipoleOutput(obj%dipoleInfo, ionode_id, comm) 1704 CALL mp_bcast(obj%gateInfo_ispresent, ionode_id, comm) 1705 IF (obj%gateInfo_ispresent) & 1706 CALL qes_bcast_gateInfo(obj%gateInfo, ionode_id, comm) 1707 ! 1708 END SUBROUTINE qes_bcast_outputElectricField 1709 ! 1710 ! 1711 SUBROUTINE qes_bcast_BerryPhaseOutput(obj, ionode_id, comm ) 1712 ! 1713 IMPLICIT NONE 1714 ! 1715 TYPE(BerryPhaseOutput_type), INTENT(INOUT) :: obj 1716 INTEGER, INTENT(IN) :: ionode_id, comm 1717 INTEGER :: i 1718 ! 1719 CALL mp_bcast(obj%tagname, ionode_id, comm) 1720 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1721 CALL mp_bcast(obj%lread, ionode_id, comm) 1722 ! 1723 CALL qes_bcast_polarization(obj%totalPolarization, ionode_id, comm) 1724 CALL qes_bcast_phase(obj%totalPhase, ionode_id, comm) 1725 CALL mp_bcast(obj%ndim_ionicPolarization, ionode_id, comm) 1726 IF (.NOT.ionode) ALLOCATE(obj%ionicPolarization(obj%ndim_ionicPolarization)) 1727 DO i=1, obj%ndim_ionicPolarization 1728 CALL qes_bcast_ionicPolarization(obj%ionicPolarization(i), ionode_id, comm) 1729 ENDDO 1730 CALL mp_bcast(obj%ndim_electronicPolarization, ionode_id, comm) 1731 IF (.NOT.ionode) ALLOCATE(obj%electronicPolarization(obj%ndim_electronicPolarization)) 1732 DO i=1, obj%ndim_electronicPolarization 1733 CALL qes_bcast_electronicPolarization(obj%electronicPolarization(i), ionode_id, comm) 1734 ENDDO 1735 ! 1736 END SUBROUTINE qes_bcast_BerryPhaseOutput 1737 ! 1738 ! 1739 SUBROUTINE qes_bcast_dipoleOutput(obj, ionode_id, comm ) 1740 ! 1741 IMPLICIT NONE 1742 ! 1743 TYPE(dipoleOutput_type), INTENT(INOUT) :: obj 1744 INTEGER, INTENT(IN) :: ionode_id, comm 1745 ! 1746 CALL mp_bcast(obj%tagname, ionode_id, comm) 1747 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1748 CALL mp_bcast(obj%lread, ionode_id, comm) 1749 ! 1750 CALL mp_bcast(obj%idir, ionode_id, comm) 1751 CALL qes_bcast_scalarQuantity(obj%dipole, ionode_id, comm) 1752 CALL qes_bcast_scalarQuantity(obj%ion_dipole, ionode_id, comm) 1753 CALL qes_bcast_scalarQuantity(obj%elec_dipole, ionode_id, comm) 1754 CALL qes_bcast_scalarQuantity(obj%dipoleField, ionode_id, comm) 1755 CALL qes_bcast_scalarQuantity(obj%potentialAmp, ionode_id, comm) 1756 CALL qes_bcast_scalarQuantity(obj%totalLength, ionode_id, comm) 1757 ! 1758 END SUBROUTINE qes_bcast_dipoleOutput 1759 ! 1760 ! 1761 SUBROUTINE qes_bcast_finiteFieldOut(obj, ionode_id, comm ) 1762 ! 1763 IMPLICIT NONE 1764 ! 1765 TYPE(finiteFieldOut_type), INTENT(INOUT) :: obj 1766 INTEGER, INTENT(IN) :: ionode_id, comm 1767 ! 1768 CALL mp_bcast(obj%tagname, ionode_id, comm) 1769 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1770 CALL mp_bcast(obj%lread, ionode_id, comm) 1771 ! 1772 CALL mp_bcast(obj%electronicDipole, ionode_id, comm) 1773 CALL mp_bcast(obj%ionicDipole, ionode_id, comm) 1774 ! 1775 END SUBROUTINE qes_bcast_finiteFieldOut 1776 ! 1777 ! 1778 SUBROUTINE qes_bcast_polarization(obj, ionode_id, comm ) 1779 ! 1780 IMPLICIT NONE 1781 ! 1782 TYPE(polarization_type), INTENT(INOUT) :: obj 1783 INTEGER, INTENT(IN) :: ionode_id, comm 1784 ! 1785 CALL mp_bcast(obj%tagname, ionode_id, comm) 1786 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1787 CALL mp_bcast(obj%lread, ionode_id, comm) 1788 ! 1789 CALL qes_bcast_scalarQuantity(obj%polarization, ionode_id, comm) 1790 CALL mp_bcast(obj%modulus, ionode_id, comm) 1791 CALL mp_bcast(obj%direction, ionode_id, comm) 1792 ! 1793 END SUBROUTINE qes_bcast_polarization 1794 ! 1795 ! 1796 SUBROUTINE qes_bcast_ionicPolarization(obj, ionode_id, comm ) 1797 ! 1798 IMPLICIT NONE 1799 ! 1800 TYPE(ionicPolarization_type), INTENT(INOUT) :: obj 1801 INTEGER, INTENT(IN) :: ionode_id, comm 1802 ! 1803 CALL mp_bcast(obj%tagname, ionode_id, comm) 1804 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1805 CALL mp_bcast(obj%lread, ionode_id, comm) 1806 ! 1807 CALL qes_bcast_atom(obj%ion, ionode_id, comm) 1808 CALL mp_bcast(obj%charge, ionode_id, comm) 1809 CALL qes_bcast_phase(obj%phase, ionode_id, comm) 1810 ! 1811 END SUBROUTINE qes_bcast_ionicPolarization 1812 ! 1813 ! 1814 SUBROUTINE qes_bcast_electronicPolarization(obj, ionode_id, comm ) 1815 ! 1816 IMPLICIT NONE 1817 ! 1818 TYPE(electronicPolarization_type), INTENT(INOUT) :: obj 1819 INTEGER, INTENT(IN) :: ionode_id, comm 1820 ! 1821 CALL mp_bcast(obj%tagname, ionode_id, comm) 1822 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1823 CALL mp_bcast(obj%lread, ionode_id, comm) 1824 ! 1825 CALL qes_bcast_k_point(obj%firstKeyPoint, ionode_id, comm) 1826 CALL mp_bcast(obj%spin_ispresent, ionode_id, comm) 1827 IF (obj%spin_ispresent) & 1828 CALL mp_bcast(obj%spin, ionode_id, comm) 1829 CALL qes_bcast_phase(obj%phase, ionode_id, comm) 1830 ! 1831 END SUBROUTINE qes_bcast_electronicPolarization 1832 ! 1833 ! 1834 SUBROUTINE qes_bcast_phase(obj, ionode_id, comm ) 1835 ! 1836 IMPLICIT NONE 1837 ! 1838 TYPE(phase_type), INTENT(INOUT) :: obj 1839 INTEGER, INTENT(IN) :: ionode_id, comm 1840 ! 1841 CALL mp_bcast(obj%tagname, ionode_id, comm) 1842 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1843 CALL mp_bcast(obj%lread, ionode_id, comm) 1844 ! 1845 CALL mp_bcast(obj%ionic_ispresent, ionode_id, comm) 1846 IF (obj%ionic_ispresent) & 1847 CALL mp_bcast(obj%ionic, ionode_id, comm) 1848 CALL mp_bcast(obj%electronic_ispresent, ionode_id, comm) 1849 IF (obj%electronic_ispresent) & 1850 CALL mp_bcast(obj%electronic, ionode_id, comm) 1851 CALL mp_bcast(obj%modulus_ispresent, ionode_id, comm) 1852 IF (obj%modulus_ispresent) & 1853 CALL mp_bcast(obj%modulus, ionode_id, comm) 1854 CALL mp_bcast(obj%phase, ionode_id, comm) 1855 ! 1856 END SUBROUTINE qes_bcast_phase 1857 ! 1858 ! 1859 SUBROUTINE qes_bcast_gateInfo(obj, ionode_id, comm ) 1860 ! 1861 IMPLICIT NONE 1862 ! 1863 TYPE(gateInfo_type), INTENT(INOUT) :: obj 1864 INTEGER, INTENT(IN) :: ionode_id, comm 1865 ! 1866 CALL mp_bcast(obj%tagname, ionode_id, comm) 1867 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1868 CALL mp_bcast(obj%lread, ionode_id, comm) 1869 ! 1870 CALL mp_bcast(obj%pot_prefactor, ionode_id, comm) 1871 CALL mp_bcast(obj%gate_zpos, ionode_id, comm) 1872 CALL mp_bcast(obj%gate_gate_term, ionode_id, comm) 1873 CALL mp_bcast(obj%gatefieldEnergy, ionode_id, comm) 1874 ! 1875 END SUBROUTINE qes_bcast_gateInfo 1876 ! 1877 ! 1878 SUBROUTINE qes_bcast_convergence_info(obj, ionode_id, comm ) 1879 ! 1880 IMPLICIT NONE 1881 ! 1882 TYPE(convergence_info_type), INTENT(INOUT) :: obj 1883 INTEGER, INTENT(IN) :: ionode_id, comm 1884 ! 1885 CALL mp_bcast(obj%tagname, ionode_id, comm) 1886 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1887 CALL mp_bcast(obj%lread, ionode_id, comm) 1888 ! 1889 CALL qes_bcast_scf_conv(obj%scf_conv, ionode_id, comm) 1890 CALL mp_bcast(obj%opt_conv_ispresent, ionode_id, comm) 1891 IF (obj%opt_conv_ispresent) & 1892 CALL qes_bcast_opt_conv(obj%opt_conv, ionode_id, comm) 1893 ! 1894 END SUBROUTINE qes_bcast_convergence_info 1895 ! 1896 ! 1897 SUBROUTINE qes_bcast_scf_conv(obj, ionode_id, comm ) 1898 ! 1899 IMPLICIT NONE 1900 ! 1901 TYPE(scf_conv_type), INTENT(INOUT) :: obj 1902 INTEGER, INTENT(IN) :: ionode_id, comm 1903 ! 1904 CALL mp_bcast(obj%tagname, ionode_id, comm) 1905 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1906 CALL mp_bcast(obj%lread, ionode_id, comm) 1907 ! 1908 CALL mp_bcast(obj%convergence_achieved, ionode_id, comm) 1909 CALL mp_bcast(obj%n_scf_steps, ionode_id, comm) 1910 CALL mp_bcast(obj%scf_error, ionode_id, comm) 1911 ! 1912 END SUBROUTINE qes_bcast_scf_conv 1913 ! 1914 ! 1915 SUBROUTINE qes_bcast_opt_conv(obj, ionode_id, comm ) 1916 ! 1917 IMPLICIT NONE 1918 ! 1919 TYPE(opt_conv_type), INTENT(INOUT) :: obj 1920 INTEGER, INTENT(IN) :: ionode_id, comm 1921 ! 1922 CALL mp_bcast(obj%tagname, ionode_id, comm) 1923 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1924 CALL mp_bcast(obj%lread, ionode_id, comm) 1925 ! 1926 CALL mp_bcast(obj%convergence_achieved, ionode_id, comm) 1927 CALL mp_bcast(obj%n_opt_steps, ionode_id, comm) 1928 CALL mp_bcast(obj%grad_norm, ionode_id, comm) 1929 ! 1930 END SUBROUTINE qes_bcast_opt_conv 1931 ! 1932 ! 1933 SUBROUTINE qes_bcast_algorithmic_info(obj, ionode_id, comm ) 1934 ! 1935 IMPLICIT NONE 1936 ! 1937 TYPE(algorithmic_info_type), INTENT(INOUT) :: obj 1938 INTEGER, INTENT(IN) :: ionode_id, comm 1939 ! 1940 CALL mp_bcast(obj%tagname, ionode_id, comm) 1941 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1942 CALL mp_bcast(obj%lread, ionode_id, comm) 1943 ! 1944 CALL mp_bcast(obj%real_space_q, ionode_id, comm) 1945 CALL mp_bcast(obj%real_space_beta_ispresent, ionode_id, comm) 1946 IF (obj%real_space_beta_ispresent) & 1947 CALL mp_bcast(obj%real_space_beta, ionode_id, comm) 1948 CALL mp_bcast(obj%uspp, ionode_id, comm) 1949 CALL mp_bcast(obj%paw, ionode_id, comm) 1950 ! 1951 END SUBROUTINE qes_bcast_algorithmic_info 1952 ! 1953 ! 1954 SUBROUTINE qes_bcast_symmetries(obj, ionode_id, comm ) 1955 ! 1956 IMPLICIT NONE 1957 ! 1958 TYPE(symmetries_type), INTENT(INOUT) :: obj 1959 INTEGER, INTENT(IN) :: ionode_id, comm 1960 INTEGER :: i 1961 ! 1962 CALL mp_bcast(obj%tagname, ionode_id, comm) 1963 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1964 CALL mp_bcast(obj%lread, ionode_id, comm) 1965 ! 1966 CALL mp_bcast(obj%nsym, ionode_id, comm) 1967 CALL mp_bcast(obj%nrot, ionode_id, comm) 1968 CALL mp_bcast(obj%space_group, ionode_id, comm) 1969 CALL mp_bcast(obj%ndim_symmetry, ionode_id, comm) 1970 IF (.NOT.ionode) ALLOCATE(obj%symmetry(obj%ndim_symmetry)) 1971 DO i=1, obj%ndim_symmetry 1972 CALL qes_bcast_symmetry(obj%symmetry(i), ionode_id, comm) 1973 ENDDO 1974 ! 1975 END SUBROUTINE qes_bcast_symmetries 1976 ! 1977 ! 1978 SUBROUTINE qes_bcast_symmetry(obj, ionode_id, comm ) 1979 ! 1980 IMPLICIT NONE 1981 ! 1982 TYPE(symmetry_type), INTENT(INOUT) :: obj 1983 INTEGER, INTENT(IN) :: ionode_id, comm 1984 ! 1985 CALL mp_bcast(obj%tagname, ionode_id, comm) 1986 CALL mp_bcast(obj%lwrite, ionode_id, comm) 1987 CALL mp_bcast(obj%lread, ionode_id, comm) 1988 ! 1989 CALL qes_bcast_info(obj%info, ionode_id, comm) 1990 CALL qes_bcast_matrix(obj%rotation, ionode_id, comm) 1991 CALL mp_bcast(obj%fractional_translation_ispresent, ionode_id, comm) 1992 IF (obj%fractional_translation_ispresent) & 1993 CALL mp_bcast(obj%fractional_translation, ionode_id, comm) 1994 CALL mp_bcast(obj%equivalent_atoms_ispresent, ionode_id, comm) 1995 IF (obj%equivalent_atoms_ispresent) & 1996 CALL qes_bcast_equivalent_atoms(obj%equivalent_atoms, ionode_id, comm) 1997 ! 1998 END SUBROUTINE qes_bcast_symmetry 1999 ! 2000 ! 2001 SUBROUTINE qes_bcast_equivalent_atoms(obj, ionode_id, comm ) 2002 ! 2003 IMPLICIT NONE 2004 ! 2005 TYPE(equivalent_atoms_type), INTENT(INOUT) :: obj 2006 INTEGER, INTENT(IN) :: ionode_id, comm 2007 ! 2008 CALL mp_bcast(obj%tagname, ionode_id, comm) 2009 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2010 CALL mp_bcast(obj%lread, ionode_id, comm) 2011 ! 2012 CALL mp_bcast(obj%nat, ionode_id, comm) 2013 CALL mp_bcast(obj%size, ionode_id, comm) 2014 IF (.NOT.ionode) ALLOCATE(obj%equivalent_atoms(obj%size)) 2015 CALL mp_bcast(obj%equivalent_atoms, ionode_id, comm) 2016 ! 2017 END SUBROUTINE qes_bcast_equivalent_atoms 2018 ! 2019 ! 2020 SUBROUTINE qes_bcast_info(obj, ionode_id, comm ) 2021 ! 2022 IMPLICIT NONE 2023 ! 2024 TYPE(info_type), INTENT(INOUT) :: obj 2025 INTEGER, INTENT(IN) :: ionode_id, comm 2026 ! 2027 CALL mp_bcast(obj%tagname, ionode_id, comm) 2028 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2029 CALL mp_bcast(obj%lread, ionode_id, comm) 2030 ! 2031 CALL mp_bcast(obj%name_ispresent, ionode_id, comm) 2032 IF (obj%name_ispresent) & 2033 CALL mp_bcast(obj%name, ionode_id, comm) 2034 CALL mp_bcast(obj%class_ispresent, ionode_id, comm) 2035 IF (obj%class_ispresent) & 2036 CALL mp_bcast(obj%class, ionode_id, comm) 2037 CALL mp_bcast(obj%time_reversal_ispresent, ionode_id, comm) 2038 IF (obj%time_reversal_ispresent) & 2039 CALL mp_bcast(obj%time_reversal, ionode_id, comm) 2040 CALL mp_bcast(obj%info, ionode_id, comm) 2041 ! 2042 END SUBROUTINE qes_bcast_info 2043 ! 2044 ! 2045 SUBROUTINE qes_bcast_outputPBC(obj, ionode_id, comm ) 2046 ! 2047 IMPLICIT NONE 2048 ! 2049 TYPE(outputPBC_type), INTENT(INOUT) :: obj 2050 INTEGER, INTENT(IN) :: ionode_id, comm 2051 ! 2052 CALL mp_bcast(obj%tagname, ionode_id, comm) 2053 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2054 CALL mp_bcast(obj%lread, ionode_id, comm) 2055 ! 2056 CALL mp_bcast(obj%assume_isolated, ionode_id, comm) 2057 ! 2058 END SUBROUTINE qes_bcast_outputPBC 2059 ! 2060 ! 2061 SUBROUTINE qes_bcast_magnetization(obj, ionode_id, comm ) 2062 ! 2063 IMPLICIT NONE 2064 ! 2065 TYPE(magnetization_type), INTENT(INOUT) :: obj 2066 INTEGER, INTENT(IN) :: ionode_id, comm 2067 ! 2068 CALL mp_bcast(obj%tagname, ionode_id, comm) 2069 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2070 CALL mp_bcast(obj%lread, ionode_id, comm) 2071 ! 2072 CALL mp_bcast(obj%lsda, ionode_id, comm) 2073 CALL mp_bcast(obj%noncolin, ionode_id, comm) 2074 CALL mp_bcast(obj%spinorbit, ionode_id, comm) 2075 CALL mp_bcast(obj%total, ionode_id, comm) 2076 CALL mp_bcast(obj%absolute, ionode_id, comm) 2077 CALL mp_bcast(obj%do_magnetization_ispresent, ionode_id, comm) 2078 IF (obj%do_magnetization_ispresent) & 2079 CALL mp_bcast(obj%do_magnetization, ionode_id, comm) 2080 ! 2081 END SUBROUTINE qes_bcast_magnetization 2082 ! 2083 ! 2084 SUBROUTINE qes_bcast_total_energy(obj, ionode_id, comm ) 2085 ! 2086 IMPLICIT NONE 2087 ! 2088 TYPE(total_energy_type), INTENT(INOUT) :: obj 2089 INTEGER, INTENT(IN) :: ionode_id, comm 2090 ! 2091 CALL mp_bcast(obj%tagname, ionode_id, comm) 2092 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2093 CALL mp_bcast(obj%lread, ionode_id, comm) 2094 ! 2095 CALL mp_bcast(obj%etot, ionode_id, comm) 2096 CALL mp_bcast(obj%eband_ispresent, ionode_id, comm) 2097 IF (obj%eband_ispresent) & 2098 CALL mp_bcast(obj%eband, ionode_id, comm) 2099 CALL mp_bcast(obj%ehart_ispresent, ionode_id, comm) 2100 IF (obj%ehart_ispresent) & 2101 CALL mp_bcast(obj%ehart, ionode_id, comm) 2102 CALL mp_bcast(obj%vtxc_ispresent, ionode_id, comm) 2103 IF (obj%vtxc_ispresent) & 2104 CALL mp_bcast(obj%vtxc, ionode_id, comm) 2105 CALL mp_bcast(obj%etxc_ispresent, ionode_id, comm) 2106 IF (obj%etxc_ispresent) & 2107 CALL mp_bcast(obj%etxc, ionode_id, comm) 2108 CALL mp_bcast(obj%ewald_ispresent, ionode_id, comm) 2109 IF (obj%ewald_ispresent) & 2110 CALL mp_bcast(obj%ewald, ionode_id, comm) 2111 CALL mp_bcast(obj%demet_ispresent, ionode_id, comm) 2112 IF (obj%demet_ispresent) & 2113 CALL mp_bcast(obj%demet, ionode_id, comm) 2114 CALL mp_bcast(obj%efieldcorr_ispresent, ionode_id, comm) 2115 IF (obj%efieldcorr_ispresent) & 2116 CALL mp_bcast(obj%efieldcorr, ionode_id, comm) 2117 CALL mp_bcast(obj%potentiostat_contr_ispresent, ionode_id, comm) 2118 IF (obj%potentiostat_contr_ispresent) & 2119 CALL mp_bcast(obj%potentiostat_contr, ionode_id, comm) 2120 CALL mp_bcast(obj%gatefield_contr_ispresent, ionode_id, comm) 2121 IF (obj%gatefield_contr_ispresent) & 2122 CALL mp_bcast(obj%gatefield_contr, ionode_id, comm) 2123 CALL mp_bcast(obj%vdW_term_ispresent, ionode_id, comm) 2124 IF (obj%vdW_term_ispresent) & 2125 CALL mp_bcast(obj%vdW_term, ionode_id, comm) 2126 ! 2127 END SUBROUTINE qes_bcast_total_energy 2128 ! 2129 ! 2130 SUBROUTINE qes_bcast_band_structure(obj, ionode_id, comm ) 2131 ! 2132 IMPLICIT NONE 2133 ! 2134 TYPE(band_structure_type), INTENT(INOUT) :: obj 2135 INTEGER, INTENT(IN) :: ionode_id, comm 2136 INTEGER :: i 2137 ! 2138 CALL mp_bcast(obj%tagname, ionode_id, comm) 2139 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2140 CALL mp_bcast(obj%lread, ionode_id, comm) 2141 ! 2142 CALL mp_bcast(obj%lsda, ionode_id, comm) 2143 CALL mp_bcast(obj%noncolin, ionode_id, comm) 2144 CALL mp_bcast(obj%spinorbit, ionode_id, comm) 2145 CALL mp_bcast(obj%nbnd_ispresent, ionode_id, comm) 2146 IF (obj%nbnd_ispresent) & 2147 CALL mp_bcast(obj%nbnd, ionode_id, comm) 2148 CALL mp_bcast(obj%nbnd_up_ispresent, ionode_id, comm) 2149 IF (obj%nbnd_up_ispresent) & 2150 CALL mp_bcast(obj%nbnd_up, ionode_id, comm) 2151 CALL mp_bcast(obj%nbnd_dw_ispresent, ionode_id, comm) 2152 IF (obj%nbnd_dw_ispresent) & 2153 CALL mp_bcast(obj%nbnd_dw, ionode_id, comm) 2154 CALL mp_bcast(obj%nelec, ionode_id, comm) 2155 CALL mp_bcast(obj%num_of_atomic_wfc_ispresent, ionode_id, comm) 2156 IF (obj%num_of_atomic_wfc_ispresent) & 2157 CALL mp_bcast(obj%num_of_atomic_wfc, ionode_id, comm) 2158 CALL mp_bcast(obj%wf_collected, ionode_id, comm) 2159 CALL mp_bcast(obj%fermi_energy_ispresent, ionode_id, comm) 2160 IF (obj%fermi_energy_ispresent) & 2161 CALL mp_bcast(obj%fermi_energy, ionode_id, comm) 2162 CALL mp_bcast(obj%highestOccupiedLevel_ispresent, ionode_id, comm) 2163 IF (obj%highestOccupiedLevel_ispresent) & 2164 CALL mp_bcast(obj%highestOccupiedLevel, ionode_id, comm) 2165 CALL mp_bcast(obj%lowestUnoccupiedLevel_ispresent, ionode_id, comm) 2166 IF (obj%lowestUnoccupiedLevel_ispresent) & 2167 CALL mp_bcast(obj%lowestUnoccupiedLevel, ionode_id, comm) 2168 CALL mp_bcast(obj%two_fermi_energies_ispresent, ionode_id, comm) 2169 IF (obj%two_fermi_energies_ispresent) & 2170 CALL mp_bcast(obj%two_fermi_energies, ionode_id, comm) 2171 CALL qes_bcast_k_points_IBZ(obj%starting_k_points, ionode_id, comm) 2172 CALL mp_bcast(obj%nks, ionode_id, comm) 2173 CALL qes_bcast_occupations(obj%occupations_kind, ionode_id, comm) 2174 CALL mp_bcast(obj%smearing_ispresent, ionode_id, comm) 2175 IF (obj%smearing_ispresent) & 2176 CALL qes_bcast_smearing(obj%smearing, ionode_id, comm) 2177 CALL mp_bcast(obj%ndim_ks_energies, ionode_id, comm) 2178 IF (.NOT.ionode) ALLOCATE(obj%ks_energies(obj%ndim_ks_energies)) 2179 DO i=1, obj%ndim_ks_energies 2180 CALL qes_bcast_ks_energies(obj%ks_energies(i), ionode_id, comm) 2181 ENDDO 2182 ! 2183 END SUBROUTINE qes_bcast_band_structure 2184 ! 2185 ! 2186 SUBROUTINE qes_bcast_ks_energies(obj, ionode_id, comm ) 2187 ! 2188 IMPLICIT NONE 2189 ! 2190 TYPE(ks_energies_type), INTENT(INOUT) :: obj 2191 INTEGER, INTENT(IN) :: ionode_id, comm 2192 ! 2193 CALL mp_bcast(obj%tagname, ionode_id, comm) 2194 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2195 CALL mp_bcast(obj%lread, ionode_id, comm) 2196 ! 2197 CALL qes_bcast_k_point(obj%k_point, ionode_id, comm) 2198 CALL mp_bcast(obj%npw, ionode_id, comm) 2199 CALL qes_bcast_vector(obj%eigenvalues, ionode_id, comm) 2200 CALL qes_bcast_vector(obj%occupations, ionode_id, comm) 2201 ! 2202 END SUBROUTINE qes_bcast_ks_energies 2203 ! 2204 ! 2205 SUBROUTINE qes_bcast_closed(obj, ionode_id, comm ) 2206 ! 2207 IMPLICIT NONE 2208 ! 2209 TYPE(closed_type), INTENT(INOUT) :: obj 2210 INTEGER, INTENT(IN) :: ionode_id, comm 2211 ! 2212 CALL mp_bcast(obj%tagname, ionode_id, comm) 2213 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2214 CALL mp_bcast(obj%lread, ionode_id, comm) 2215 ! 2216 CALL mp_bcast(obj%DATE, ionode_id, comm) 2217 CALL mp_bcast(obj%TIME, ionode_id, comm) 2218 CALL mp_bcast(obj%closed, ionode_id, comm) 2219 ! 2220 END SUBROUTINE qes_bcast_closed 2221 ! 2222 ! 2223 SUBROUTINE qes_bcast_vector(obj, ionode_id, comm ) 2224 ! 2225 IMPLICIT NONE 2226 ! 2227 TYPE(vector_type), INTENT(INOUT) :: obj 2228 INTEGER, INTENT(IN) :: ionode_id, comm 2229 ! 2230 CALL mp_bcast(obj%tagname, ionode_id, comm) 2231 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2232 CALL mp_bcast(obj%lread, ionode_id, comm) 2233 ! 2234 CALL mp_bcast(obj%size, ionode_id, comm) 2235 IF (.NOT.ionode) ALLOCATE(obj%vector(obj%size)) 2236 CALL mp_bcast(obj%vector, ionode_id, comm) 2237 ! 2238 END SUBROUTINE qes_bcast_vector 2239 ! 2240 ! 2241 SUBROUTINE qes_bcast_integerVector(obj, ionode_id, comm ) 2242 ! 2243 IMPLICIT NONE 2244 ! 2245 TYPE(integerVector_type), INTENT(INOUT) :: obj 2246 INTEGER, INTENT(IN) :: ionode_id, comm 2247 ! 2248 CALL mp_bcast(obj%tagname, ionode_id, comm) 2249 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2250 CALL mp_bcast(obj%lread, ionode_id, comm) 2251 ! 2252 CALL mp_bcast(obj%size, ionode_id, comm) 2253 IF (.NOT.ionode) ALLOCATE(obj%integerVector(obj%size)) 2254 CALL mp_bcast(obj%integerVector, ionode_id, comm) 2255 ! 2256 END SUBROUTINE qes_bcast_integerVector 2257 ! 2258 ! 2259 SUBROUTINE qes_bcast_matrix(obj, ionode_id, comm ) 2260 ! 2261 IMPLICIT NONE 2262 ! 2263 TYPE(matrix_type), INTENT(INOUT) :: obj 2264 INTEGER, INTENT(IN) :: ionode_id, comm 2265 INTEGER :: length 2266 INTEGER :: i 2267 ! 2268 CALL mp_bcast(obj%tagname, ionode_id, comm) 2269 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2270 CALL mp_bcast(obj%lread, ionode_id, comm) 2271 ! 2272 CALL mp_bcast(obj%rank, ionode_id, comm) 2273 IF (.NOT.ionode) ALLOCATE(obj%dims(obj%rank)) 2274 CALL mp_bcast(obj%dims, ionode_id, comm) 2275 CALL mp_bcast(obj%order, ionode_id, comm) 2276 IF (.NOT. ionode) THEN 2277 length = 1 2278 DO i=1, obj%rank 2279 length = length * obj%dims(i) 2280 END DO 2281 ALLOCATE (obj%matrix(length) ) 2282 ENDIF 2283 CALL mp_bcast(obj%matrix, ionode_id, comm) 2284 ! 2285 END SUBROUTINE qes_bcast_matrix 2286 ! 2287 ! 2288 SUBROUTINE qes_bcast_integerMatrix(obj, ionode_id, comm ) 2289 ! 2290 IMPLICIT NONE 2291 ! 2292 TYPE(integerMatrix_type), INTENT(INOUT) :: obj 2293 INTEGER, INTENT(IN) :: ionode_id, comm 2294 INTEGER :: length 2295 INTEGER :: i 2296 ! 2297 CALL mp_bcast(obj%tagname, ionode_id, comm) 2298 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2299 CALL mp_bcast(obj%lread, ionode_id, comm) 2300 ! 2301 CALL mp_bcast(obj%rank, ionode_id, comm) 2302 IF (.NOT.ionode) ALLOCATE(obj%dims(obj%rank)) 2303 CALL mp_bcast(obj%dims, ionode_id, comm) 2304 CALL mp_bcast(obj%order, ionode_id, comm) 2305 IF (.NOT. ionode) THEN 2306 length = 1 2307 DO i=1, obj%rank 2308 length = length * obj%dims(i) 2309 END DO 2310 ALLOCATE (obj%integerMatrix(length) ) 2311 ENDIF 2312 CALL mp_bcast(obj%integerMatrix, ionode_id, comm) 2313 ! 2314 END SUBROUTINE qes_bcast_integerMatrix 2315 ! 2316 ! 2317 SUBROUTINE qes_bcast_scalarQuantity(obj, ionode_id, comm ) 2318 ! 2319 IMPLICIT NONE 2320 ! 2321 TYPE(scalarQuantity_type), INTENT(INOUT) :: obj 2322 INTEGER, INTENT(IN) :: ionode_id, comm 2323 ! 2324 CALL mp_bcast(obj%tagname, ionode_id, comm) 2325 CALL mp_bcast(obj%lwrite, ionode_id, comm) 2326 CALL mp_bcast(obj%lread, ionode_id, comm) 2327 ! 2328 CALL mp_bcast(obj%Units, ionode_id, comm) 2329 CALL mp_bcast(obj%scalarQuantity, ionode_id, comm) 2330 ! 2331 END SUBROUTINE qes_bcast_scalarQuantity 2332 ! 2333 ! 2334END MODULE qes_bcast_module