The CPPC Project

Controller/comPiler for Portable Checkpointing

  1. Fortran code not yet accepted by the Fortran compiler:
    • Octal numbers such as "0777". This number will get translated as "777" instead of "511", resulting in code malfunction. If you are using any octal integer representation, be sure to check the resulting code after running the compiler to correct this issue.
    • "CONTINUE" statements. Ending a labeled loop with "<label> CONTINUE" is ok, but executable "CONTINUE" statements are not yet supported. Note that ending multiple loops with the same label with just one CONTINUE statement is not yet supported.
    • "ELSE IF" constructs. If you want to use an ELSEIF construct, write it as "ELSEIF". Otherwise, the new if has to be properly closed with an END IF (ENDIF) statement.
  2. Compiler analyses might fail if a nonportable function is inserted into a non-do loop (Fortran) or a non standard for loop (C) (being standard the usual "for( var = value; <condition>; <step> )" construct.
  3. Currently the CPPC framework does only support the Unix standard filesystem, described in headers "fcntl.h", "sys/stat.h", "sys/types.h" and "unistd.ht". If you are interested in an adapter for other filesystems, please send a petition.
  4. CPPC needs the HDF-5 libraries to be installed in order to build a checkpoint writer. If it cannot find HDF-5 execution will fail when trying to create checkpoint files.
  5. The Fortran compiler used to build the Fortran 77 interface needs to implement the FSEEK GNU intrinsic, in order to be able to reposition files upon application restart. For this reason, the Fortran interface in CPPC is not compatible with GCC4 below v4.3 (it works with GCC3 and g77, though).