TABLE OF CONTENTS


ABINIT/m_pretty_rec [ Modules ]

[ Top ] [ Modules ]

NAME

  m_pretty_rec

FUNCTION

  This module  provides some minor functions applied in the
  recursion

COPYRIGHT

 Copyright (C) 2002-2024 ABINIT group (XG)
 This file is distributed under the terms of the
 GNU General Public License, see ~abinit/COPYING
 or http://www.gnu.org/copyleft/gpl.txt .
 For the initials of contributors, see ~abinit/doc/developers/contributors.txt.

NOTES

SOURCE

21 #if defined HAVE_CONFIG_H
22 #include "config.h"
23 #endif
24 
25 #include "abi_common.h"
26 
27 
28 MODULE m_pretty_rec
29 
30  use defs_basis
31  use m_abicore
32 
33  implicit none
34 
35  private
36 
37  public ::  prtwork                ! calculate the work done during recursion
38 
39  interface prtwork
40   module procedure prtworksim
41   module procedure prtworksiRe
42   module procedure prtworkadv
43  end interface prtwork
44 
45 CONTAINS  !===========================================================

m_pretty_rec/prtworkadv [ Functions ]

[ Top ] [ m_pretty_rec ] [ Functions ]

NAME

 prtworkadv

FUNCTION

 Calculate the work done during recursion

INPUTS

 counter

SIDE EFFECTS

OUTPUT

SOURCE

138 subroutine prtworkadv(work_now,adv)
139 
140  implicit none
141 
142 !Arguments ------------------------------------
143 ! scalars
144  integer,intent(in) :: work_now
145  character(1),intent(in) ::adv
146 ! arrays
147 !Local ---------------------------
148  integer,save :: work_done=0, first_wk=0
149 ! *********************************************************************
150  if(adv /= 'no' .or. adv/='yes' ) then
151   write(std_out, "(a,i3,i3)")'nn'
152  end if
153  if(work_now >=100 .and. first_wk ==0) return
154  if(work_now == 0 .and. first_wk==0) then
155   write(std_out,"(a)")' work done: '
156   first_wk=1
157  end if
158  if(mod(work_done-work_now,10)==0 .and. work_now/=work_done) then
159   work_done = work_now
160   !write(std_out, "(a,$)")'|'
161   write(std_out, "(a,i3,i3)")'work_done',work_done,work_now
162   if(work_done == 100) then
163    write(std_out,"(a)")' '
164    first_wk = 0
165    work_done = 0
166   end if
167  endif
168 
169 end subroutine prtworkadv

m_pretty_rec/prtworksim [ Functions ]

[ Top ] [ m_pretty_rec ] [ Functions ]

NAME

 prtworksim

FUNCTION

 Calculate the work done during recursion

INPUTS

 counter

SIDE EFFECTS

OUTPUT

SOURCE

63 subroutine prtworksim(work_now)
64 
65  implicit none
66 !Arguments ------------------------------------
67 ! scalars
68  integer,intent(in) :: work_now
69 ! arrays
70 !Local ---------------------------
71  integer,save :: work_done=0
72  integer :: ii,pt
73  character(500) :: msg
74 ! *********************************************************************
75  if(mod(work_done-work_now,5)==0 .and. work_now/=work_done .and. work_now <105) then
76   work_done = work_now
77   pt = work_done/5
78   write(msg,'(a,23a,i3,a)')'work done:',('-',ii=1,pt),(' ',ii=1,23-pt),work_done,'%'
79   call wrtout(std_out,msg,'COLL')
80  endif
81 
82 end subroutine prtworksim

m_pretty_rec/prtworksiRe [ Functions ]

[ Top ] [ m_pretty_rec ] [ Functions ]

NAME

 prtworksiRe

FUNCTION

 Calculate the work done during recursion

INPUTS

 counter

SIDE EFFECTS

OUTPUT

SOURCE

100 subroutine prtworksiRe(work_now)
101 
102  implicit none
103 !Arguments ------------------------------------
104 ! scalars
105  real(dp),intent(in) :: work_now
106 ! arrays
107 !Local ---------------------------
108  integer,save :: work_done=0
109  integer :: ii,pt,work_now_int
110  character(500) :: msg
111 ! *********************************************************************
112  work_now_int = int(work_now)
113  if(mod(work_done-work_now_int,5)==0 .and. work_now_int/=work_done .and. work_now_int <105) then
114   work_done = work_now_int
115   pt = work_done/5
116   write(msg,'(a,23a,i3,a)')'work done:',('-',ii=1,pt),(' ',ii=1,23-pt),work_done,'%'
117   call wrtout(std_out,msg,'COLL')
118  endif
119 
120 end subroutine prtworksiRe