The Elk Code
putgwsefm.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2017 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and
3 ! E. K. U. Gross. This file is distributed under the terms of the GNU General
4 ! Public License. See the file COPYING for license details.
5 
6 subroutine putgwsefm(ik,se)
7 use modmain
8 use modgw
9 use modramdisk
10 implicit none
11 ! arguments
12 integer, intent(in) :: ik
13 complex(8), intent(in) :: se(nstsv,nstsv,0:nwfm)
14 ! local variables
15 integer recl
16 !$OMP CRITICAL(u280)
17 ! write to RAM disk if required
18 if (ramdisk) then
19  call putrd('GWSEFM.OUT',ik,v1=vkl(1:3,ik),n1=nstsv,n2=nwfm, &
20  nzv=nstsv*nstsv*(nwfm+1),zva=se)
21 end if
22 ! write to disk if required
23 if (wrtdsk) then
24 ! find the record length
25  inquire(iolength=recl) vkl(1:3,ik),nstsv,nwfm,se
26  open(280,file='GWSEFM.OUT',form='UNFORMATTED',access='DIRECT',recl=recl)
27  write(280,rec=ik) vkl(1:3,ik),nstsv,nwfm,se
28  close(280)
29 end if
30 !$OMP END CRITICAL(u280)
31 end subroutine
32 
logical ramdisk
Definition: modramdisk.f90:9
subroutine putrd(fname, irec, n1, n2, n3, v1, v2, nrv, rva, nzv, zva)
Definition: modramdisk.f90:120
type(file_t), dimension(:), allocatable, private file
Definition: modramdisk.f90:29
logical wrtdsk
Definition: modramdisk.f90:15
subroutine putgwsefm(ik, se)
Definition: putgwsefm.f90:7
real(8), dimension(:,:), allocatable vkl
Definition: modmain.f90:471
Definition: modgw.f90:6