Error Handling

In CP2K there exist three convenient macros for error handling. They are defined in src/base/base_uses.f90, and are therefore always available. However, these macros can only be used for short messages (approximately less than 7 words), because of Fortran's line length limitation.

   CPWARN("A short warning message")
   CPABORT("A short error message")
   CPASSERT(2>1) ! For sanity checks only, not for user errors.

For longer messages one can use these two routines:

   CALL cp_warn(__LOCATION__,"A long warning message "//&
                "which can span multiple lines and contains "//&
                "some valuable advice for the user.")
 
   CALL cp_abort(__LOCATION__,"A long error message "//&
                 "with even more valuable advices.")      
Messages from CPWARN and cp_warn are only printed on the first MPI-rank.
Warnings issued on other ranks are ignored.

Cheat Sheet

If you want to…