Skip to content

Commit

Permalink
Only write groups in Turbomole output if necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
awvwgk committed Apr 14, 2022
1 parent 3d0e921 commit 380d8c6
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions src/mctc/io/write/turbomole.f90
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,25 @@ subroutine write_coord(mol, unit)
class(structure_type), intent(in) :: mol
integer, intent(in) :: unit
integer :: iat, ilt, npbc
logical :: expo

write(unit, '(a)') "$coord"
do iat = 1, mol%nat
write(unit, '(3es24.14, 6x, a)') mol%xyz(:, iat), trim(mol%sym(mol%id(iat)))
end do
write(unit, '(a, *(1x, a, "=", i0))') &
"$eht", "charge", nint(mol%charge), "unpaired", mol%uhf
write(unit, '(a, 1x, i0)') "$periodic", count(mol%periodic)
expo = maxval(self%xyz) > 1.0e+5 .or. minval(self%xyz) < -1.0e+5
if (expo) then
do iat = 1, mol%nat
write(unit, '(3es24.14, 6x, a)') mol%xyz(:, iat), trim(mol%sym(mol%id(iat)))
end do
else
do iat = 1, mol%nat
write(unit, '(3f24.14, 6x, a)') mol%xyz(:, iat), trim(mol%sym(mol%id(iat)))
end do
end if
if (any([nint(mol%charge), mol%uhf] /= 0)) then
write(unit, '(a, *(1x, a, "=", i0))') &
"$eht", "charge", nint(mol%charge), "unpaired", mol%uhf
end if
if (any(mol%periodic)) then
write(unit, '(a, 1x, i0)') "$periodic", count(mol%periodic)
npbc = count(mol%periodic)
if (size(mol%lattice, 2) == 3) then
write(unit, '(a)') "$lattice bohr"
Expand Down

0 comments on commit 380d8c6

Please sign in to comment.