?? RIGHT := 110 ??
?? NEWTITLE := 'CREATE_SUBPRODUCT_CORRECTION subutility: RAP$RESET_CORRECTION_ENVIRON procedure.' ??
MODULE ram$reset_correction_environ;

{ PURPOSE:
{   This procedure closes the open subproduct information files and
{   sets the global boolean variables to FALSE.
{
{ DESIGN:
{   If the subproduct information files are opened they are closed.
{   The global booleans are set to FALSE.
{
{ NOTES:
{
{

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc ost$status
?? POP ??
*copyc fsp$close_file
*copyc rav$correction_process_record

?? OLDTITLE ??
?? NEWTITLE := 'Global Declarations Declared by This Module', EJECT ??

?? OLDTITLE ??
?? NEWTITLE := '[XDCL] rap$reset_correction_environ', EJECT ??

{ PURPOSE:
{   This procedure closes the open subproduct information files and
{   sets the global boolean variables to FALSE.
{
{ DESIGN:
{   If the subproduct information files are opened they are closed.
{   The global booleans are set to FALSE.
{   The scratch sequence is reset.
{
{ NOTES:
{
{

  PROCEDURE [XDCL] rap$reset_correction_environ
    (VAR correction_process_record: rat$correction_process_record;
     VAR status: ost$status);

    VAR
      local_status: ost$status;

    status.normal := TRUE;

    rav$correction_process_record.correction_in_progress := FALSE;
    RESET rav$correction_process_record.new_subproduct_info_pointers.subproduct_info_seq_p;

    IF rav$correction_process_record.base_level_sif.file_opened THEN
      fsp$close_file (rav$correction_process_record.base_level_sif.fid, local_status);
      IF local_status.normal THEN
        rav$correction_process_record.base_level_sif.file_opened := FALSE;
      ELSE
        status := local_status;
      IFEND;
    IFEND;

    IF rav$correction_process_record.current_level_sif.file_opened THEN
      fsp$close_file (rav$correction_process_record.current_level_sif.fid, local_status);
      IF local_status.normal THEN
        rav$correction_process_record.current_level_sif.file_opened := FALSE;
      ELSE
        status := local_status;
      IFEND;
    IFEND;

    IF rav$correction_process_record.previous_correction_sif.file_opened THEN
      fsp$close_file (rav$correction_process_record.previous_correction_sif.fid, local_status);
      IF local_status.normal THEN
        rav$correction_process_record.previous_correction_sif.file_opened := FALSE;
      ELSE
        status := local_status;
      IFEND;
    IFEND;

  PROCEND rap$reset_correction_environ;

MODEND ram$reset_correction_environ;
