Problem statement
The main part of my code is in C (called from Python). The C-part calls functions written in Fortran. Possible errors are propagated using an error-code and an error-string with a description of the error.
The problem is that I cannot seem to get the correct interface to write the string in Fortran and read/copy/manipulate it in C. The code below outlines what I want to do, the comments with marked with * ... * indicate where extensions are needed.
C
// global variable: read from Python if an error is encountered
char* error_string;
// template for the Fortan-subroutine
void fortran_calculation_( double* , int* );
int heavy_calculation( double* x )
{
  int error_code;
  // ... some code ...
  // * should accept and write "error_string" *
  fortran_calculation_( x , &error_code );
  if ( error_code ) 
  {
    error_string = "TO BE WRITTEN BY FORTRAN > REMOVE!!";
    return 1;
  }
  // ... some code ...
  return 0;
}
Fortran
subroutine fortran_calculation_(x,error_code)
implicit none
! * include "error_string" as argument *
real*8  :: x
integer :: error_code
! ... some code ...
if ( ... ) then
  ! * write "error_string" *
  error_code = 1
  return
end if
return 
end subroutine
I've tried many things, but I cannot seem to get it working...