quantum-espresso/dev-tools/README.md

1.9 KiB

Dev Tools

This directory contains several tools that may be useful for developers

  • mem_counter. A script that tracks all calls to allocate and deallocate, appending a call to subroutine UtilXlib/mem_counter.f90. Calls python script mem_counter.py, written by Pietro Bonfà (CINECA) and improved by Samuel Poncé. mem_counter -h gives information on how to use it. BEWARE: you may still need to manually edit some files that do not compile.

  • mem_analyse.py is a python script, by Samuel Poncé, locating memory leaks. See the script header for directions on how to use it.

  • src-normal. A script that "normalizes" the fortran syntax to QE style (see below). Calls python script src-normal.py, written by Norbert Nemec.

    Usage: src-normal file1.f90 [file2.f90 ...] or src-normal

  • Utilities for PWgui:

    • check_gui (called via Makefile)
    • diff_gui_help
    • guihelp.xsl
    • update_gui_help
  • Utilities for helpdoc (see README.helpdoc):

    • helpdoc
    • helpdoc.d
    • helpdoc.schema
    • input_xx.xsl
  • Utilities for emacs_mode:

    • gen-emacs-mode
    • gen-emacs-mode.tcl

Obsolescent utilities

  • GPU utilities by Pietro Bonfà:
    • get_device_props.py
    • device_props.c
  • Other utilities:
    • calltree.pl A perl script, to be run from the root QE directory, producing in the standard output the tree of called routines
    • callhtml.pl As above, producing a html page with the tree of called routines

Coding style

These are some basic rules for Fortran codes enforced by src_normal:

  • Use spaces for indentation instead of tabs (tab width 8 characters).
  • Trailing whitespaces at the end the line should be removed.
  • Normalize multiword keywords (e.g. END DO).
  • Use capitalize version of the intrisic keywords (IF, DO, SUBROUTINE, etc.).
  • Use the newest version of the comparison operators (==, >, etc.) instead of the old one (.eq., .gt., etc.)