LCOV - code coverage report
Current view: top level - src/68_recursion - m_pretty_rec.F90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 53.6 % 28 15
Test Date: 2026-09-20 18:56:22 Functions: 66.7 % 3 2

            Line data    Source code
       1              : !!****m* ABINIT/m_pretty_rec
       2              : !! NAME
       3              : !!  m_pretty_rec
       4              : !!
       5              : !! FUNCTION
       6              : !!  This module  provides some minor functions applied in the
       7              : !!  recursion
       8              : !!
       9              : !! COPYRIGHT
      10              : !! Copyright (C) 2002-2026 ABINIT group (XG)
      11              : !! This file is distributed under the terms of the
      12              : !! GNU General Public License, see ~abinit/COPYING
      13              : !! or http://www.gnu.org/copyleft/gpl.txt .
      14              : !! For the initials of contributors, see ~abinit/doc/developers/contributors.txt.
      15              : !!
      16              : !! NOTES
      17              : !!
      18              : !!
      19              : !! SOURCE
      20              : 
      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  !===========================================================
      46              : !!***
      47              : 
      48              : !!****f* m_pretty_rec/prtworksim
      49              : !! NAME
      50              : !! prtworksim
      51              : !!
      52              : !! FUNCTION
      53              : !! Calculate the work done during recursion
      54              : !!
      55              : !! INPUTS
      56              : !! counter
      57              : !!
      58              : !! SIDE EFFECTS
      59              : !!
      60              : !! OUTPUT
      61              : !! SOURCE
      62              : 
      63        17280 : subroutine prtworksim(work_now)
      64              : 
      65              : !Arguments ------------------------------------
      66              : ! scalars
      67              :  integer,intent(in) :: work_now
      68              : ! arrays
      69              : !Local ---------------------------
      70              :  integer,save :: work_done=0
      71              :  integer :: ii,pt
      72              :  character(500) :: msg
      73              : ! *********************************************************************
      74        17280 :  if(mod(work_done-work_now,5)==0 .and. work_now/=work_done .and. work_now <105) then
      75          646 :   work_done = work_now
      76          646 :   pt = work_done/5
      77        15504 :   write(msg,'(a,23a,i3,a)')'work done:',('-',ii=1,pt),(' ',ii=1,23-pt),work_done,'%'
      78          646 :   call wrtout(std_out,msg,'COLL')
      79              :  endif
      80              : 
      81        17280 : end subroutine prtworksim
      82              : !!***
      83              : 
      84              : !!****f* m_pretty_rec/prtworksiRe
      85              : !! NAME
      86              : !! prtworksiRe
      87              : !!
      88              : !! FUNCTION
      89              : !! Calculate the work done during recursion
      90              : !!
      91              : !! INPUTS
      92              : !! counter
      93              : !!
      94              : !! SIDE EFFECTS
      95              : !!
      96              : !! OUTPUT
      97              : !! SOURCE
      98              : 
      99          189 : subroutine prtworksiRe(work_now)
     100              : 
     101              : !Arguments ------------------------------------
     102              : ! scalars
     103              :  real(dp),intent(in) :: work_now
     104              : ! arrays
     105              : !Local ---------------------------
     106              :  integer,save :: work_done=0
     107              :  integer :: ii,pt,work_now_int
     108              :  character(500) :: msg
     109              : ! *********************************************************************
     110          189 :  work_now_int = int(work_now)
     111          189 :  if(mod(work_done-work_now_int,5)==0 .and. work_now_int/=work_done .and. work_now_int <105) then
     112           42 :   work_done = work_now_int
     113           42 :   pt = work_done/5
     114         1008 :   write(msg,'(a,23a,i3,a)')'work done:',('-',ii=1,pt),(' ',ii=1,23-pt),work_done,'%'
     115           42 :   call wrtout(std_out,msg,'COLL')
     116              :  endif
     117              : 
     118          189 : end subroutine prtworksiRe
     119              : !!***
     120              : 
     121              : !!****f* m_pretty_rec/prtworkadv
     122              : !! NAME
     123              : !! prtworkadv
     124              : !!
     125              : !! FUNCTION
     126              : !! Calculate the work done during recursion
     127              : !!
     128              : !! INPUTS
     129              : !! counter
     130              : !!
     131              : !! SIDE EFFECTS
     132              : !!
     133              : !! OUTPUT
     134              : !! SOURCE
     135              : 
     136            0 : subroutine prtworkadv(work_now,adv)
     137              : 
     138              : !Arguments ------------------------------------
     139              : ! scalars
     140              :  integer,intent(in) :: work_now
     141              :  character(1),intent(in) ::adv
     142              : ! arrays
     143              : !Local ---------------------------
     144              :  integer,save :: work_done=0, first_wk=0
     145              : ! *********************************************************************
     146              :  if(adv /= 'no' .or. adv/='yes' ) then
     147            0 :   write(std_out, "(a,i3,i3)")'nn'
     148              :  end if
     149            0 :  if(work_now >=100 .and. first_wk ==0) return
     150            0 :  if(work_now == 0 .and. first_wk==0) then
     151            0 :   write(std_out,"(a)")' work done: '
     152            0 :   first_wk=1
     153              :  end if
     154            0 :  if(mod(work_done-work_now,10)==0 .and. work_now/=work_done) then
     155            0 :   work_done = work_now
     156              :   !write(std_out, "(a,$)")'|'
     157            0 :   write(std_out, "(a,i3,i3)")'work_done',work_done,work_now
     158            0 :   if(work_done == 100) then
     159            0 :    write(std_out,"(a)")' '
     160            0 :    first_wk = 0
     161            0 :    work_done = 0
     162              :   end if
     163              :  endif
     164              : 
     165              : end subroutine prtworkadv
     166              : !!***
     167              : 
     168              : END MODULE m_pretty_rec
     169              : !!***
        

Generated by: LCOV version 2.3-1