Write unformatted spn file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | stdout | |||
| character(len=50), | intent(in) | :: | seedname |
subroutine conv_write_spn(stdout, seedname) !================================================! ! !! Write unformatted spn file ! !================================================! use w90_io, only: io_date use w90spn_parameters, only: num_bands, num_kpts implicit none integer, intent(in) :: stdout character(len=50), intent(in) :: seedname integer :: spn_unit, m, n, ik, counter, s, ierr complex(kind=dp), allocatable :: spn_temp(:, :) write (stdout, '(3a)') 'Writing information to unformatted file ', trim(seedname), '.spn :' open (newunit=spn_unit, file=trim(seedname)//'.spn', form='unformatted') allocate (spn_temp(3, (num_bands*(num_bands + 1))/2), stat=ierr) if (ierr /= 0) call io_error('Error in allocating spm_temp in conv_write_spn', stdout) write (spn_unit) header write (spn_unit) num_bands, num_kpts do ik = 1, num_kpts counter = 0 do m = 1, num_bands do n = 1, m counter = counter + 1 do s = 1, 3 spn_temp(s, counter) = spn_o(n, m, ik, s) end do end do end do write (spn_unit) ((spn_temp(s, m), s=1, 3), m=1, ((num_bands*(num_bands + 1))/2)) end do close (spn_unit) write (stdout, '(1x,a)') 'write done.' end subroutine conv_write_spn