real, dimension(:), pointer :: vector real, dimension(:,:), pointer :: imagewhich means the task can either pass as actual argument an uninitialized pointer or a pointer which points to an allocated array. As an example of the latter case, the task may have gotten a pointer to a Dal table column and want the CAL to write the result into that directly (e.g. populating the DETX/DETY columns with the output of CAL_rawXY2mm).
When uninitialized pointers are passed the CAL newly allocates memory for the output array which leaves the caller with the burden to de-allocate that memory when it is no longer needed. A routine CAL_releaseMemory is provided for that purpose. For examples on the above topics, please consult the CAL example task mentioned below.