TABLE OF CONTENTS


ABINIT/m_specialmsg [ Modules ]

[ Top ] [ Modules ]

NAME

  m_specialmsg

FUNCTION

  This module contains tools to deal with special messages counters.
  Special messages= WARNING, COMMENT, EXIT

COPYRIGHT

 Copyright (C) 2008-2018 ABINIT group (MT)
 This file is distributed under the terms of the
 GNU General Public License, see ~abinit/COPYING
 or http://www.gnu.org/copyleft/gpl.txt .

PARENTS

CHILDREN

SOURCE

22 #if defined HAVE_CONFIG_H
23 #include "config.h"
24 #endif
25 
26 #include "abi_common.h"
27 
28 MODULE m_specialmsg
29 
30  use defs_basis
31  use m_build_info
32  use m_xmpi
33 
34  implicit none
35 
36  private

ABINIT/wrtout [ Functions ]

[ Top ] [ Functions ]

NAME

  wrtout

FUNCTION

  Organizes the sequential or parallel version of the write intrinsic
  Also allows to treat correctly the write operations for Unix (+DOS) and MacOS.

COPYRIGHT

  Copyright (C) 1998-2018 ABINIT group (DCA, XG, GMR)
  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 .

INPUTS

  msg=(character(len=*)) message to be written
  unit=unit number for writing. The named constant dev_null defined in defs_basis can be used to avoid any printing.
  [mode_paral]= --optional argument--
   'COLL' if all procs are calling the routine with the same message to be written once only. Default.
   'PERS' if the procs are calling the routine with different messages each to be written,
          or if one proc is calling the routine
   "INIT" to change the rank of the master node that prints the message if "COLL" is used.
  [do_flush]=True to flush the unit. Defaults to .False.

OUTPUT

  (only writing)

NOTES

   The routine uses optional arguments, therefore the interface must be explicit.
   Be careful when writing CPP macros that use wrtout since abilint won't see the call
   and no interface will be added to the source file.

PARENTS

      abinit,afterscfloop,anaddb,append_xyz,atm2fft,atomden,berryphase
      berryphase_new,bethe_salpeter,bonds_lgth_angles,bsepostproc,calc_efg
      calc_fc,calc_optical_mels,calc_rpa_functional,calc_sigc_me,calc_sigx_me
      calc_ubare,calc_ucrpa,calc_vhxc_me,calcdensph,cchi0,cchi0q0
      cchi0q0_intraband,cgwf,chebfi,chern_number,chiscwrt,chkdpr,chkinp
      chkint_prt,chkpawovlp,clnup1,clnup2,cohsex_me,compute_anharmonics
      compute_kgb_indicator,compute_levels,constrf,cut3d,d2frnl,m_datafordmft
      ddb_diel,ddb_elast,ddb_internalstr,ddb_interpolate,ddb_io_out,ddb_piezo
      debug_tools,deloc2xcart,denfgr,dfpt_cgwf,dfpt_looppert,dfpt_mkrho
      dfpt_nselt,dfpt_nstdy,dfpt_nstpaw,dfpt_prtene,dfpt_prtph,dfpt_scfcv
      dfpt_symph,dfpt_vtowfk,dfpt_wfkfermi,dfptff_initberry,dfptnl_doutput
      dfptnl_loop,dfptnl_mv,dielmt,dieltcel,m_dmft,dos_hdr_write,driver
      dyson,echo_xc_name,eig2stern,eliashberg_1d,elph2_fanddw,elphon
      elpolariz,elt_ewald,entropyrec,ep_fs_weights,ep_setupqpt,eph,erlxconv
      evdw_wannier,exc_build_block,exc_build_ham,exc_den,exc_plot,extraprho
      fconv,fermi_green,fermisolverec,fftprof,find_getdtset,finddistrproc
      findmin,findminscf,first_rec,fred2fdeloc,fresidrsp,fsumrule,get_all_gkq
      get_fs_bands,get_npert_rbz,get_nv_fs_en,get_nv_fs_temp,get_tau_k
      getcgqphase,getcut,getdim_nloc,getghc,getmpw,getnel,getng,getshell
      gran_potrec,green_kernel,gstate,gstateimg,gwls_polarisability
      harmonic_thermo,hdr_vs_dtset,herald,hermit,hubbard_one,importxyz
      impurity_solve,inarray,ingeo,ingeobld,initberry,initmpi_grid,initorbmag
      initro,initwf,inkpts,inpgkk,inpspheads,instrng,intagm,integrate_gamma
      integrate_gamma_alt,integrate_gamma_tr,integrate_gamma_tr_lova,invars1
      invars2,inwffil,ioniondist,ioprof,irrzg,kpgio,kramerskronig,ks_ddiago
      lapackprof,ldau_self,leave_new,linemin,littlegroup_pert,littlegroup_q
      lobpcgwf,local_ks_green,m_abi_etsf,m_abihist,m_abilasi,m_anaddb_dataset
      m_argparse,m_atom,m_bfgs,m_bs_defs,m_bse_io,m_bz_mesh,m_cgtools,m_chi0
      m_crystal,m_ddb,m_ddb_hdr,m_ddk,m_double_grid,m_dtset,m_dvdb,m_dynmat
      m_dyson_solver,m_ebands,m_effective_potential
      m_effective_potential_file,m_energy,m_entropyDMFT,m_epjdos,m_errors
      m_esymm,m_eval_lotf,m_exc_diago,m_exc_itdiago,m_exc_spectra,m_exit
      m_fft,m_fft_mesh,m_fft_prof,m_fftcore,m_fftw3,m_fit_polynomial_coeff
      m_fock,m_fstab,m_geometry,m_gkk,m_gpu_detect,m_green,m_gruneisen
      m_gsphere,m_hamiltonian,m_harmonics_terms,m_haydock,m_hdr,m_hexc
      m_hidecudarec,m_hu,m_ifc,m_initcuda,m_invovl,m_io_kss,m_io_screening
      m_ioarr,m_iowf,m_iterators,m_kxc,m_libpaw_libxc,m_libxc_functionals
      m_lotf,m_matlu,m_matrix,m_melemts,m_mep,m_multibinit_dataset,m_nctk
      m_numeric_tools,m_oper,m_optic_tools,m_paw_an,m_paw_dmft,m_paw_gaussfit
      m_paw_ij,m_paw_io,m_paw_slater,m_paw_sphharm,m_pawang,m_pawdij,m_pawfgr
      m_pawfgrtab,m_pawpsp,m_pawpwij,m_pawrad,m_pawrhoij,m_pawtab,m_phgamma
      m_phonons,m_phpi,m_pimd,m_plowannier,m_polynomial_coeff,m_ppmodel
      m_pptools,m_pred_lotf,m_pretty_rec,m_psps,m_psxml2ab,m_ptgroups
      m_qparticles,m_rec,m_rf2,m_screen,m_screening,m_self,m_shirley,m_sigma
      m_sigmaph,m_skw,m_slk,m_strain,m_vcoul,m_wfd,m_wfk,m_work_var_lotf
      m_xc_vdw,m_xpapi,mag_constr_e,mblktyp1,mblktyp5,memana,memorf,memory
      metric,mka2f,mka2fQgrid,mka2f_tr,mka2f_tr_lova,mkcore_paw,mkcore_wvl
      mkfilename,mkfskgrid,mklocl_recipspace,mklocl_wavelets,mknormpath
      mkph_linwid,mkqptequiv,mkrho,mlwfovlp,mlwfovlp_proj,mlwfovlp_projpaw
      mlwfovlp_pw,mlwfovlp_qp,mlwfovlp_seedname,mlwfovlp_setup,mover
      mover_effpot,mpi_setup,mrgddb,mrgdv,mrggkk,mrgscr,multibinit
      multipoles_out,my_calc_wfwfg,newfermie1,newkpt,newocc,newton
      nlenergyrec,nonlinear,normsq_gkq,optic,out1dm,out_acknowl,outelph
      outgkk,outkss,outqmc,outscfcv,outvars,outwant,partial_dos_fractions
      paw_mknewh0,paw_qpscgw,pawdenpot,pawdensities,pawmkaewf,pawmkrhoij
      pawprt,pawpuxinit,pawuenergy,pawuj_det,pawuj_red,pawuj_utils,pawxenergy
      pimd_nosehoover_nvt,polcart,posdoppler,poslifetime,pred_delocint
      pred_isokinetic,pred_isothermal,pred_langevin,pred_nose,pred_verlet
      predictimg,prep_calc_ucrpa,prtefield,prteigrs,prtene,prtimg,prtrhomxmn
      prtspgroup,prtxf,prtxfase,prtxvf,psichi_renormalization,psolver_hartree
      psolver_kernel,psolver_rhohxc,psp10in,psp1in,psp2in,psp2lo,psp3in
      psp5in,psp6in,psp8in,psp9in,pspatm,pspini,pspnl_hgh_rec
      pspnl_operat_rec,qmc_prep_ctqmc,randac,random_stopping_power
      rayleigh_ritz,read_gkk,read_plowannier,recursion_nl,remove_inversion
      respfn,rf2_init,rotmat,scfcge,scfcv,scfeig,scfopt,scprqt,screening
      setnoccmmp,setrhoijpbe0,setsym_ylm,setup1,setup_bse,setup_bse_interp
      setup_positron,setup_screening,setup_sigma,shellstruct,sigma,smpbz
      spectral_function,stress,sumrule,symanal,symatm,symaxes,symcharac
      symfind,symkchk,symkpt,symlatt,symplanes,symspgr,tddft,testkgrid,thmeig
      timana,uderiv,ujdet,update_e_field_vars,vdw_dftd2,vdw_dftd3
      vdw_kernelgen,vtorho,vtorhorec,vtorhotf,vtowfk,wfconv,wfd_mkrho
      wfd_pawrhoij,wfk_analyze,wfsinp,wrt_moldyn_netcdf,wrtloctens
      wvl_denspot_set,wvl_descr_atoms_set_sym,wvl_descr_psp_set,wvl_hpsitopsi
      wvl_initro,wvl_memory,wvl_mkrho,wvl_nl_gradient,wvl_projectors_set
      wvl_psitohpsi,wvl_rwwf,wvl_setboxgeometry,wvl_setngfft
      wvl_tail_corrections,wvl_wfs_set,wvl_wfsinp_disk,wvl_wfsinp_reformat
      wvl_wfsinp_scratch

CHILDREN

      flush_unit,specialmsg_setcount,write_lines

SOURCE

476 subroutine wrtout(unit,msg,mode_paral,do_flush)
477 
478  use m_xmpi,      only : xmpi_world, xmpi_comm_rank, xmpi_comm_size
479  use m_io_tools,  only : flush_unit, write_lines
480 
481 !This section has been created automatically by the script Abilint (TD).
482 !Do not modify the following lines by hand.
483 #undef ABI_FUNC
484 #define ABI_FUNC 'wrtout'
485 !End of the abilint section
486 
487  implicit none
488 
489 !Arguments ------------------------------------
490  integer,intent(in) :: unit
491  character(len=*),intent(in) :: msg
492  character(len=*),optional,intent(in) :: mode_paral
493  logical,optional,intent(in) :: do_flush
494 
495 !Local variables-------------------------------
496  integer :: comm,me,nproc
497  integer,save :: master=0
498  logical :: my_flush
499  character(len=len(msg)+50) :: string
500  character(len=500) :: my_mode_paral
501 
502 !******************************************************************
503 
504  if ((unit == std_out).and.(.not.do_write_log)) RETURN
505  if (unit == dev_null) RETURN
506 
507  my_mode_paral = "COLL"; if (PRESENT(mode_paral)) my_mode_paral = mode_paral
508  my_flush = .false.; if (PRESENT(do_flush)) my_flush = do_flush
509 
510 !Communicator is xmpi_world by default, except for the parallelization over images
511  if (abinit_comm_output/=-1) then
512    comm=abinit_comm_output
513  else
514    comm=xmpi_world
515  end if
516 
517 !Determine who I am in COMM_WORLD
518  nproc = xmpi_comm_size(comm)
519  me    = xmpi_comm_rank(comm)
520 
521  if( (my_mode_paral=='COLL') .or. (nproc==1) ) then
522    if (me==master) then
523      call wrtout_myproc(unit, msg, do_flush=my_flush)
524    end if
525 
526  else if (my_mode_paral=='PERS') then
527    call write_lines(unit,msg)
528 
529    ! Flush unit
530    if (my_flush) then
531      call flush_unit(unit)
532    end if
533 
534  else if (my_mode_paral=='INIT') then
535    master=unit
536 
537  else
538    write(string,'(7a)')ch10,&
539 &   'wrtout: ERROR -',ch10,&
540 &   '  Unknown write mode: ',my_mode_paral,ch10,&
541 &   '  Continuing anyway ...'
542    write(unit, '(A)' ) trim(string)
543  end if
544 
545 end subroutine wrtout

ABINIT/wrtout_myproc [ Functions ]

[ Top ] [ Functions ]

NAME

  wrtout_myproc

FUNCTION

  Do the output for one proc. For parallel or sequential output use wrtout()
  instead. Also allows to treat correctly the write operations for Unix (+DOS) and MacOS.

  Copyright (C) 1998-2018 ABINIT group (DCA, XG, GMR)

INPUTS

  unit=unit number for writing
  message=(character(len=*)) message to be written
  [do_flush]=True to flush the unit. Defaults to .False.

OUTPUT

  (only writing)

PARENTS

      wrtout

CHILDREN

      flush_unit,specialmsg_setcount,write_lines

SOURCE

575 subroutine wrtout_myproc(unit,message,do_flush) ! optional argument
576 
577  use defs_basis
578  !use m_abicore
579 
580  use m_xmpi,       only : xmpi_sum
581  !use m_specialmsg, only : specialmsg_setcount
582  use m_io_tools,   only : flush_unit, write_lines
583 
584 !This section has been created automatically by the script Abilint (TD).
585 !Do not modify the following lines by hand.
586 #undef ABI_FUNC
587 #define ABI_FUNC 'wrtout_myproc'
588 !End of the abilint section
589 
590  implicit none
591 
592 !Arguments ------------------------------------
593 !scalars
594  integer,intent(in) :: unit
595  character(len=*),intent(in) :: message
596  logical,optional,intent(in) :: do_flush
597 
598 !Local variables-------------------------------
599 !scalars
600  integer :: i_one=1
601  logical :: print_std_err
602 
603 !******************************************************************
604 
605  print_std_err = (unit == std_out .and. std_out /= std_err .and. &
606 & (index(trim(message),'BUG')/=0.or.index(trim(message),'ERROR')/=0))
607 
608 !Print message
609  call write_lines(unit,message)
610  if (print_std_err) call write_lines(std_err,message)
611 
612 !Append "Contact Abinit group" to BUG messages
613  if( index(trim(message),'BUG') /= 0 )then
614    write(unit, '(a)' ) '  Action: contact ABINIT group (please attach the output of `abinit -b`)'
615    write(unit,*)
616    if (print_std_err) then
617      write(std_err, '(a)' ) '  Action: contact ABINIT group (please attach the output of `abinit -b`)'
618      write(std_err,*)
619    end if
620  end if
621 
622 !Count the number of warnings and comments. Only take into
623 !account unit std_out, in order not to duplicate these numbers.
624  if( index(trim(message),'WARNING') /= 0 .and. unit==std_out )then
625    call specialmsg_setcount(n_add_warning=i_one)
626  end if
627  if( index(trim(message),'COMMENT') /= 0 .and. unit==std_out )then
628    call specialmsg_setcount(n_add_comment=i_one)
629  end if
630  if( index(trim(message),'Exit') /= 0 )then
631    call specialmsg_setcount(n_add_exit=i_one)
632  end if
633 
634 !Flush unit
635  if (present(do_flush)) then
636    if (do_flush) call flush_unit(unit)
637  end if
638 #ifdef DEBUG_MODE
639  call flush_unit(unit)
640  if (print_std_err) call flush_unit(std_err)
641 #endif
642 
643 end subroutine wrtout_myproc

m_specialmsg/herald [ Functions ]

[ Top ] [ m_specialmsg ] [ Functions ]

NAME

  herald

FUNCTION

  Prints out a message to unit iout giving info about current
  code, version of code, platform, and starting date.

INPUTS

  code_name= code name
  code_version= code version
  iout=unit number for output

OUTPUT

  (only writing)

PARENTS

      abinit,aim,anaddb,bsepostproc,cut3d,fftprof,ioprof,lapackprof,mrgddb
      mrgdv,mrggkk,mrgscr,multibinit,optic,ujdet,vdw_kernelgen

CHILDREN

      date_and_time,wrtout

SOURCE

241 subroutine herald(code_name,code_version,iout)
242 
243 
244 !This section has been created automatically by the script Abilint (TD).
245 !Do not modify the following lines by hand.
246 #undef ABI_FUNC
247 #define ABI_FUNC 'herald'
248 !End of the abilint section
249 
250  implicit none
251 
252 !Arguments ------------------------------------
253  integer,intent(in) :: iout
254  character(len=*),intent(in) :: code_name
255  character(len=*),intent(in) :: code_version
256 
257 !Local variables-------------------------------
258  integer :: day,dd,ja,jy,jm,jdn,mm,mm_rel,year,year_rel
259  integer :: values(8)
260  character(len=5) :: strzone
261  character(len=8) :: strdat
262  character(len=10) :: strtime
263  character(len=500) :: message
264  character(len=3),parameter :: day_names(7)=(/'Mon','Tue','Wed','Thu','Fri','Sat','Sun'/)
265  character(len=3),parameter :: month_names(12)=(/'Jan','Feb','Mar','Apr','May','Jun',&
266 &                                                'Jul','Aug','Sep','Oct','Nov','Dec'/)
267 
268 ! *************************************************************************
269 
270 !RELEASE TIME FROM ABIRULES
271  year_rel=2019
272  mm_rel=01
273 !END OF RELEASE TIME
274 
275 !The technique used hereafter is the only one that we have found to obtain
276 !perfect transferability across platforms and OS.
277  write(iout, '(/,a,a,a,a,a)' ) '.Version ',trim(code_version),' of ',trim(code_name),' '
278 #if defined HAVE_MPI
279  write(iout, '(a,a,a,/)' ) '.(MPI version, prepared for a ',build_target,' computer) '
280 #else
281  write(iout, '(a,a,a,/)' ) '.(sequential version, prepared for a ',build_target,' computer) '
282 #endif
283 
284 !GNU GPL license
285  write(iout, '(a,/,a,a,a,/,a,/,a,/,a,/)' ) &
286 & '.Copyright (C) 1998-2018 ABINIT group . ',&
287 & ' ',trim(code_name),' comes with ABSOLUTELY NO WARRANTY.',&
288 & ' It is free software, and you are welcome to redistribute it',&
289 & ' under certain conditions (GNU General Public License,',&
290 & ' see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt).'
291 
292  if(trim(code_name)=='OPTIC')then
293    write(iout, '(a,a,a,/,a,/,a,/,a,/,a,/,a,/,a,/)' ) &
294 &   ' ',trim(code_name),' has originally been developed by',&
295 &   ' Sangeeta Sharma and incorporated in ABINIT with the help of M. Verstraete.',&
296 &   ' Please refer to : ',&
297 &   ' S. Sharma, J. K. Dewhurst and C. Ambrosch-Draxl, Phys. Rev. B 67, 165332 (2003), and',&
298 &   ' S. Sharma and C. Ambrosch-Draxl, Physica Scripta T 109 (2004).',&
299 &   '- URLs and DOI at https://docs.abinit.org/theory/bibliography/#sharma2003',&
300 &   '- and https://docs.abinit.org/theory/bibliography/#sharma2004'
301  end if
302 
303  write(iout, '(a,/,a,/,a,/,a,/,a)' ) &
304 & ' ABINIT is a project of the Universite Catholique de Louvain,',&
305 & ' Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt .',&
306 & ' Please read https://docs.abinit.org/theory/acknowledgments for suggested',&
307 & ' acknowledgments of the ABINIT effort.',&
308 & ' For more information, see https://www.abinit.org .'
309 
310 !Get year, month and day
311  call date_and_time(strdat,strtime,strzone,values)
312  year=values(1)
313  mm=values(2)
314  dd=values(3)
315 
316 !Get day of the week
317  if (mm.gt.2) then
318    jy=year
319    jm=mm+1
320  else
321    jy=year-1
322    jm=mm+13
323  end if
324  jdn=int(365.25d0*jy)+int(30.6001d0*jm)+dd+1720995
325  ja=int(0.01d0*jy)
326  jdn=jdn+2-ja+int(quarter*ja)
327  day=mod(jdn,7)+1
328 
329 !Print date in nice format (* new format *)
330  write(iout, '(/,a,a,1x,i2,1x,a,1x,i4,a,/,a,i2.2,a,i2.2,a)' ) &
331 & '.Starting date : ',day_names(day),dd,month_names(mm),year,'.','- ( at ',values(5),'h',values(6),' )'
332  write(iout,*)' '
333 
334 !Impose a maximal life cycle of 3 years
335  if(year>year_rel+3 .or. (year==year_rel+3 .and. mm>mm_rel) ) then
336    write(message, '(5a,i4,5a)' )&
337 &   '- The starting date is more than 3 years after the initial release',ch10,&
338 &   '- of this version of ABINIT, namely ',month_names(mm_rel),' ',year_rel,'.',ch10,&
339 &   '- This version of ABINIT is not supported anymore.',ch10,&
340 &   '- Action: please, switch to a more recent version of ABINIT.'
341    call wrtout(iout,message,'COLL')
342 
343 !  Gives a warning beyond 2 years
344  else if(year>year_rel+2 .or. (year==year_rel+2 .and. mm>mm_rel) ) then
345    write(message, '(5a,i4,6a)' )&
346 &   '- The starting date is more than 2 years after the initial release',ch10,&
347 &   '- of this version of ABINIT, namely ',month_names(mm_rel),' ',year_rel,'.',ch10,&
348 &   '- Note that the use beyond 3 years after the release will not be supported.',ch10,&
349 &   '- Action: please, switch to a more recent version of ABINIT.',ch10
350    call wrtout(iout,message,'COLL')
351  end if
352 
353 end subroutine herald

m_specialmsg/specialmsg_getcount [ Functions ]

[ Top ] [ m_specialmsg ] [ Functions ]

NAME

  specialmsg_getcount

FUNCTION

  Get the values of the counters of special messages (WARNING, COMMENT)

INPUTS

OUTPUT

  ncomment= number of COMMENTs in log file
  nwarning= number of WARNINGs in log file
  nexit=    1 if exit requested

PARENTS

      abinit

CHILDREN

      xmpi_sum

SOURCE

134 subroutine specialmsg_getcount(ncomment,nwarning,nexit)
135 
136 
137 !This section has been created automatically by the script Abilint (TD).
138 !Do not modify the following lines by hand.
139 #undef ABI_FUNC
140 #define ABI_FUNC 'specialmsg_getcount'
141 !End of the abilint section
142 
143  implicit none
144 
145 !Arguments ------------------------------------
146  integer,intent(out) :: ncomment,nexit,nwarning
147 
148 !Local variables-------------------------------
149 
150 ! *********************************************************************
151 
152  ncomment=COMMENT_COUNT
153  nwarning=WARNING_COUNT
154  nexit   =EXIT_FLAG
155 
156 end subroutine specialmsg_getcount

m_specialmsg/specialmsg_mpisum [ Functions ]

[ Top ] [ m_specialmsg ] [ Functions ]

NAME

  specialmsg_mpisum

FUNCTION

  Reduce the counters of special messages (WARNING, COMMENTS, EXIT) over a MPI communicator

INPUTS

  mpicomm= MPI communicator

OUTPUT

  (only counters updated)

PARENTS

      gstateimg

CHILDREN

      xmpi_sum

SOURCE

182 subroutine specialmsg_mpisum(mpicomm)
183 
184 
185 !This section has been created automatically by the script Abilint (TD).
186 !Do not modify the following lines by hand.
187 #undef ABI_FUNC
188 #define ABI_FUNC 'specialmsg_mpisum'
189 !End of the abilint section
190 
191  implicit none
192 
193 !Arguments ------------------------------------
194  integer,intent(in) :: mpicomm
195 
196 !Local variables-------------------------------
197  integer :: ierr
198  integer :: buf(3)
199 
200 ! *********************************************************************
201 
202   buf(1)=COMMENT_COUNT;buf(2)=WARNING_COUNT;buf(3)=EXIT_FLAG
203 
204   call xmpi_sum(buf,mpicomm,ierr)
205 
206   COMMENT_COUNT=buf(1)
207   WARNING_COUNT=buf(2)
208   EXIT_FLAG=buf(3) ; if (EXIT_FLAG/=0) EXIT_FLAG=1
209 
210 end subroutine specialmsg_mpisum

m_specialmsg/specialmsg_setcount [ Functions ]

[ Top ] [ m_specialmsg ] [ Functions ]

NAME

  specialmsg_setcount

FUNCTION

  Update the counters of special messages (WARNING, COMMENTS, EXIT) printed in log file

INPUTS

  [n_add_comment]= (optional) number of comments to add to the counter
  [n_add_exit]   = (optional) number of exit messages to add to the counter
  [n_add_warning]= (optional) number of warnings to add to the counter

OUTPUT

  (only counters updated)

PARENTS

      wrtout

CHILDREN

      xmpi_sum

SOURCE

 82 subroutine specialmsg_setcount(n_add_comment,n_add_warning,n_add_exit)
 83 
 84 
 85 !This section has been created automatically by the script Abilint (TD).
 86 !Do not modify the following lines by hand.
 87 #undef ABI_FUNC
 88 #define ABI_FUNC 'specialmsg_setcount'
 89 !End of the abilint section
 90 
 91  implicit none
 92 
 93 !Arguments ------------------------------------
 94  integer,optional,intent(in) :: n_add_comment,n_add_warning,n_add_exit
 95 
 96 !Local variables-------------------------------
 97 
 98 ! *********************************************************************
 99 
100  if (PRESENT(n_add_comment)) COMMENT_COUNT=COMMENT_COUNT+n_add_comment
101  if (PRESENT(n_add_warning)) WARNING_COUNT=WARNING_COUNT+n_add_warning
102  if (PRESENT(n_add_exit   )) then
103    EXIT_FLAG=EXIT_FLAG+n_add_exit
104    if (EXIT_FLAG>1) EXIT_FLAG=1
105  end if
106 
107 end subroutine specialmsg_setcount