16 bind(C, name = "prg_memory_consumption")
17 use,
intrinsic :: iso_c_binding
18 integer(C_LONG_LONG),
intent(inout) :: vm_peak
19 integer(C_LONG_LONG),
intent(inout) :: vm_size
20 integer(C_LONG_LONG),
intent(inout) :: pid
21 integer(C_LONG_LONG),
intent(inout) :: ppid
31 integer,
parameter ::
dp = kind(1.0d0)
49 integer,
intent(in) :: i
50 character(len=20) :: buffer
52 write(buffer,
"(I20)") i
64 use,
intrinsic :: iso_c_binding
67 integer(kind=C_LONG_LONG),
intent(in) :: i
68 character(len=30) :: buffer
70 write(buffer,
"(I30)") i
83 double precision,
intent(in) :: x
84 character(len=20) :: buffer
86 write(buffer,
"(ES20.8)") x
102 integer :: ndim, i, j
103 integer,
intent (in) :: i1,i2,j1,j2
105 real(
dp),
intent (in) :: amat(:,:)
106 character(len=*) :: matname
108 if(i1 > i2)stop
"Error at prg_print_matrix, i1 > i2"
109 if(j1 > j2)stop
"Error at prg_print_matrix, j1 > j2"
111 ndim =
size(amat,dim=1)
125 write(*,*)
" ============================================== "
128 write(*,
'(10F15.10)') (amat(i,j), j = j1,jj2)
130 write(*,*)
" ============================================== "
141 integer :: timevector(8)
144 call date_and_time(values=timevector)
145 mls=timevector(5)*60.0_dp*60.0_dp*1000.0_dp + timevector(6)*60.0_dp*1000.0_dp &
146 + timevector(7)*1000.0_dp + timevector(8)
158 real(
dp) :: x(nn,nn),s(nn,nn),temp1(nn,nn),temp2(nn,nn), dta
159 real(
dp) :: identity(nn,nn)
167 temp1=matmul(transpose(x),s)
168 temp2=matmul(temp1,x)
177 temp1(i,j) = identity(i,j)-temp2(i,j)
193 use,
intrinsic :: iso_c_binding
195 character(*),
intent(in) :: procname
196 character(*),
intent(in) :: tag
197 character(200) :: command
198 integer(kind=C_LONG_LONG) :: vm_peak, vm_size, pid, ppid
202 write(*, *)
"Used mem "//trim(tag) &
218 real(dp) :: a(nn,nn), norm2
220 real(dp) :: utmp(nn,nn), tmp_evals(nn)
221 real(dp),
allocatable :: tmp_work(:)
224 allocate(tmp_work(tmp_lwork))
228 call dsyev(
"v",
"u", nn, utmp, nn, tmp_evals, tmp_work, &
231 norm2=max(abs(tmp_evals(1)),abs(tmp_evals(nn)))
243 real(
dp),
intent(in) :: a(:)
Module to handle input output files for the PROGRESS lib.