*DECK   SM5RETA 
          PROC SM5RETA(STR);
#**       SM5RETA -  SET RAW PARAMETER OF RETAIN.                      #
#                                                                      #
#     CALLING SEQUENCE-                                                #
#         CALL SM5RETA                                                 #
#                                                                      #
#     GIVEN-                                                           #
#         STR = SINGLE STRING VALUE GIVEN AS PARAMETER                 #
#                                                                      #
#     DOES-                                                            #
#         IF CALLED IN THE WRONG ORDER,                                #
#             ISSUE A DIAGNOSTIC, AND                                  #
#             RETURN.                                                  #
#         SAVE RAW PARAMETER OF TYPE "RETAIN".                         #
  
  
  
          BEGIN 
          XREF
              BEGIN 
              PROC  S$BFILL;           # BLANK FILL PARAMETER          #
              PROC  S$ERROR;           # HANDLE A USER ERROR           #
              FUNC  S$INSEQ  B;        # TRUE IFF CALL IN SEQUENCE     #
              PROC  S$SVREL;           # SAVE RAW PARAM. FROM RELOC.   #
              END 
  
  
          ITEM STR   C(4);
*CALL A 
  
*CALL E$
  
*CALL RP$ 
  
*CALL SQ$ 
  
CONTROL DISJOINT; 
  
CONTROL INERT;
CONTROL EJECT;
  
#     IF CALLED IN THE WRONG ORDER,                                    #
#         ISSUE A DIAGNOSTIC, AND                                      #
#         RETURN.                                                      #
  
          IF NOT S$INSEQ(SQ$"SM5RETA")  THEN
              BEGIN 
              S$ERROR(E$110);          # CALL OUT OF SEQUENCE          #
#***#         RETURN; 
              END 
#    TEST THE VALUE OF STR- IF STR NOT "YES" THEN RETURN               #
  
          S$BFILL(STR); 
          IF STR NQ "NO"  AND  STR NQ "YES"  AND
                  STR NQ "N"  AND  STR NQ "Y"   THEN
              BEGIN 
              S$ERROR(E$79,  " ", 0);  # VALUES ALLOWED AS RETAIN      #
#                                        PARAMETERS ARE YES AND NO     #
#***#         RETURN; 
              END 
  
          IF STR EQ "NO"  OR  STR EQ "N"  THEN
#***#         RETURN; 
  
#     OTHERWISE IF STR = "YES" OR "Y"  THEN                            #
  
#     SET ORDER OF RECORD OUTPUT                                       #
#         RECORDS WITH EQUAL KEYS WILL RETAIN ORIGINAL ORDER.          #
  
          RP$TYPE = RP$T"RETAIN"; 
          S$SVREL(RP$); 
  
          END  # SM5RETA #
          TERM
