Write out the matrix elements of r
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | pos_r(:,:,:,:) | |||
| integer, | intent(in) | :: | irvec(:,:) | |||
| integer, | intent(in) | :: | nrpts | |||
| integer, | intent(in) | :: | num_wann | |||
| character(len=50), | intent(in) | :: | seedname | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
subroutine plot_write_rmn(pos_r, irvec, nrpts, num_wann, seedname, error, comm) !================================================! ! !! Write out the matrix elements of r ! !================================================! use w90_comms, only: w90_comm_type use w90_constants, only: dp use w90_error, only: w90_error_type, set_error_file use w90_io, only: io_date implicit none ! arguments type(w90_error_type), allocatable, intent(out) :: error type(w90_comm_type), intent(in) :: comm integer, intent(in) :: nrpts integer, intent(in) :: irvec(:, :) integer, intent(in) :: num_wann complex(kind=dp), intent(in) :: pos_r(:, :, :, :) character(len=50), intent(in) :: seedname ! local variables integer :: loop_rpt, m, n, file_unit, ierr character(len=33) :: header character(len=9) :: cdate, ctime open (newunit=file_unit, file=trim(seedname)//'_r.dat', form='formatted', status='unknown', & iostat=ierr) if (ierr /= 0) then call set_error_file(error, 'Error: plot_write_rmn: problem opening file '//trim(seedname)//'_r.dat', comm) return end if call io_date(cdate, ctime) header = 'written on '//cdate//' at '//ctime write (file_unit, *) header ! Date and time write (file_unit, *) num_wann write (file_unit, *) nrpts do loop_rpt = 1, nrpts do m = 1, num_wann do n = 1, num_wann write (file_unit, '(5I5,6F12.6)') irvec(:, loop_rpt), n, m, pos_r(n, m, loop_rpt, :) end do end do end do close (file_unit) end subroutine plot_write_rmn