USE-statement should have an
ONLY:-clause, which lists the imported symbols [-Wuse-without-only].
OMP PARALLEL-region should declare
DEALLOCATE, the Fortran runtime takes care.
RANDOM_NUMBER(), it's not consistent across different compilers.
There are two measure of defense against spaghetti code:
PRIVATEand only few public symbols.
For many common operation there exist wrappers in CP2K to prevent usage errors and to allow for central redirections.
cp_files.Finstead of calling
fm-package instead of calling BLAS or Scalapack directly.
message_passing.Finstead of calling MPI directly.
machine.Fto access architecture depended things like e.g. the working directory.
iw=cp_logger_get_default_unit_nr()and write only if you actually received a unit:
IF(iw>0) WRITE (UNIT=iw, ,,,).
IF(debug_this_module)-block, with a parameter set to
.FALSE.. This way the code will stay up-to-date and easily callable.
.Ffile should contain either a
PROGRAMor a single
MODULE, whose name matches the filename.
INSTALL-file and added to the cp2k_flags function (cp2k_info.F).
make -j pretty.
SUBROUTINEshould be preceded by a valid doxygen block.
\param(for each parameter),
make doxifyto format your doxygen comments, or generate templates where none exist