MEMSEL builds a group membership mask for each sample requested. Each mask is added to the Task Factor file specified by the user. The user selects a sample by defining a set of logic variables which are set TRUE if the case data information specified falls in the given range, or FALSE if not within range. These logic variables are then interacted according to an equation containing the logical operations OR, AND, and NOT.
Automatic Process Generation
MEMSEL will generate a GRPJOB runstream if a GRPJOB card is found, which will in turn start a PRTJOB runstream if a PRT card is encountered. A GRPREL runstream will be created if a GRPREL card is found. The generated runstream will be executed unless the X option is specified on the invocation line.
Program Invocation

The specific syntax for program invocation varies between operating systems. This document diplays the code for the AIX version.
opt: N NOGO option, perform control card check
E Send 'E' option to generated GRPREL runstream
X Suppress the execution of the generated runstream
R Generate a GRPREL
J Generate a GRPJOB
P Generate a GRPJOB followed by a PRTJOB
ssss: The study number
CDf: Input Case Data file
TFf: Input/output Task Factor file
TT: Input Task Title file (required if tasks are requested, or
if the PRT or GRPREL card is used).
VTf: Input Variables Title file (required if computed or background
variables are requested).
CSf: Input Cluster Solution file (required if a presentation sequence
is used). The KPATH/TPATH sequence number will be copied into
C0009 from the specified presentation sequence.
MEMSEL Control Card
MEMSEL: cc 01-06 The literal 'MEMSEL' study: cc 08-11 The study number for this run ipseq: cc 13-18 The presentation sequence used to replace C0009 with KPATH or TPATH number. title: cc 20-79 The report title for this run.
Condition Definition Cards
The condition definition cards are used to assign TRUE/FALSE values to logic variables. Typically, this is done by defining a range of values for a specified variable. Each condition is evaluated for each case on the input file. If the case's data for the target variable falls within the specified range, the logic variable associated with that condition (e.g., L01, L02, etc.) is set to "TRUE," otherwise its value is set to "FALSE." In the simplest case, if a selection logic card (explained below), contains only "(L01)" then the output membership mask will identify every case for which the first condition is "TRUE." If a selection logic card contains "(-L01)", which means "not L01", then the output membership mask will identify every case for which the first condition is "FALSE." In addition to ranges on variables, logic variables can be set based upon membership in a previously defined group. Up to 99 logic variables can be defined in a single MEMSEL run.
Six forms of the condition definition cards are described in the following sections. The form to be used is dictated by the generic type of variable whose range is being checked (computed, task, background or previously defined group), the internal content/coding of the variable (ASCII with numeric only vs mixed alphanumerics), and the requirements of the application (percent time vs original raw rating). Each section is identified by the generic type of variable it describes. The six types of condition definition cards can be used in any combination or order desired provided the logical variable names are consecutive and in sequence from L01 to Lxx, where xx is the sequence number of the last definition. In the selection logic section all logical variables are treated equally, regardless of the generic variable type used to create it. Valid IDs for computed or background variables can be found by running DICTXX. Valid IDs for tasks can be found by running TASKXX. Valid IDs for groups can be found by running FACSXX with the "M" option.
Computed Variables
L: cc 01 The literal 'L' xx: cc 02-03 The condition definition sequence number =C: cc 04-05 The literal '=C' index: cc 06-09 The index of the computed variable low: cc 13-24 The lowest acceptable value for this computed variable high: cc 26-37 The highest acceptable value for this computed variable
Task Responses (Percent Time Spent)
L: cc 01 The literal 'L' xx: cc 02-03 The condition definition sequence number =T: cc 04-05 The literal '=T' index: cc 06-09 The index of the task low: cc 13-24 The lowest acceptable value for this task high: cc 26-37 The highest acceptable value for this task
Task Responses (Raw Rating)
L: cc 01 The literal 'L' xx: cc 02-03 The condition definition sequence number =R: cc 04-05 The literal '=R' index: cc 06-09 The index of the task response low: cc 13-24 The lowest acceptable value for this task high: cc 26-37 The highest acceptable value for this task
Background Variables (Numeric)
L: cc 01 The literal 'L' xx: cc 02-03 The condition definition sequence number =V: cc 04-05 The literal '=V' index: cc 06-09 The index of the background variable low: cc 13-24 The lowest acceptable numeric value for this background variable (right justified) high: cc 26-37 The highest acceptable numeric value for this background variable (right justified)
Background Variables (Alphanumerics)
L: cc 01 The literal 'L' xx: cc 02-03 The condition definition sequence number =V: cc 04-05 The literal '=V' index: cc 06-09 The index of the background variable A: cc 11 The literal 'A' low: cc 13-24 The lowest acceptable alphanumeric value for this background variable (left justified) high: cc 26-37 The highest acceptable alphanumeric value for this background variable (left justified)
Note: Use an AUDITD output report to determine low versus high alphanumeric values. Leading and trailing blanks and zeros are significant in this context and are NOT interchangeable.
Previous Group Membership
L: cc 01 The literal 'L' xx: cc 02-03 The condition definition sequence number =: cc 04 The literal '=' membrs: cc 05-10 The membership mask (e.g., GP0027, ST0295). The logical condition will be set TRUE for group members and FALSE for non-members.
This feature allows very complex groups to created by successively iteratively identifying partial subgroups which may be logically interacted in a final run. Also, this method is computationally MUCH more efficient than specifying previously used conditions.
These cards are terminated by an '@eof' image.
Selection and Follow-on Analysis Control Card Sets
MEMSEL may be used to a) only define groups, b) define and produce job descriptions for groups, c) define and determine interrater agreement for groups, or d) all of the preceding. Although the cards from two of the following three sections (job descriptions and interrater reliability), cannot be intermixed, basic group definition can be used alone or as a required part of the other sections. The three control card sets may be used as often as desired, and in any order.
Sample Selection Cards
This section can be used by itself if sample selection is all that is desired. If a job description is to be computed for the samples selected or the interrater reliability is to be calculated, see the following sections. The pair of cards described here will add a new membership mask to the Task Factor file. This pair of cards may be repeated as often as desired then followed by an "@EOF" card after the last pair.
Sample/Group Title Card
The Title card assigns a title to the group being defined. If the title is blank, the title of the Case Data file is used.
TITLE: cc 01-05 The literal 'TITLE' title: cc 07-66 The title for this group
Selection Logic Card
The Selection Logic Card immediately follows the Title card. This is a free format card which describes the logical interaction to be performed on the logic variables for each case in order to decide whether or not the case is to be included in the group.
(: The literal '('
logic: The logical equation for the selection
): The literal ')'
The first character encountered must be an open parenthesis, '('. MEMSEL will continue scanning from this point until a matching close parenthesis, ')', is found. This scan may continue on to additional cards (text lines), if necessary.
Between this pair of parentheses a selection equation is formulated using the logical variables defined above along with the standard logical operators, i.e., AND (denoted "&"), OR (denoted ":"), and NOT (denoted "-"). These operators are used to interact the logical variables created by the condition definitions. "-" (NOT), the unary operator, has the highest precedence, followed by "&" (AND), and finally ":" (OR). Higher precedence subexpressions are resolved before lower precedence subexpressions. Balanced pairs of parentheses may be used in the equation to define and raise the precedences of subexpressions in order to control the order of the operations performed. If several subexpressions of the same precedence level are encountered, they are evaluated from left to right.
The simplest equation allowed consists of a pair of matched parentheses (e.g. '()'). This logical equation will cause ALL CASES on the input file to be selected for the new group. If an equation using a single logical variable (e.g. L01) is used, the group which is selected will be all the members of the input file which have a value for the variable specified by L01 which falls into the range specified on the condition definition card for L01. By creating more complex logical equations, any group desired can be selected from the input file.
These cards are terminated by an '@eof' image.
GRPJOB: Job Description Computations
This set of control cards will cause a GRPJOB runstream to be generated and performed (unless the 'X' option is used) immediately following this run of MEMSEL. Group job descriptions will be created and optionally printed for all the samples selected by this set of control cards.
Compute Group Job Description Card
This card indicates the beginning of a GRPJOB control card set.
GRPJOB: cc 01-06 The literal 'GRPJOB'
Print Group Job Description Card (Optional)
This card indicates that the samples which follow are to have their job descriptions printed after they are computed. This card is not required.
This card is passed on to the follow-on PRTJOB runstream.
Click here to see specific details about this card.
Report Note Cards (optional)
The cards in this section are notes that are to be printed on a group job description report. These cards cannot be included in this section unless the PRT card has been included. If these cards are used there may be as many as desired. It is not necessary to include any note cards.
note: cc 01-80 Any text desired
These cards are terminated by an '@eof' image.
The '@eof' card is required if the PRT card has been included. It signifies the end of the report note cards (even if none appear) for this section. This '@eof' should not be used if the PRT card has not been used.
Sample Selection Card Set
Each group described after the PRT card will have a job description printed. If the PRT card was not used, job descriptions will be computed but not printed. The format for these cards is described above.
GRPREL: Interrater Reliability Analysis
The GRPREL card indicates that all the following groups that are selected will generate a GRPREL run, using that group as the mask for membership selection. Once this card is read, all following cards will be added to the GRPREL runstream(s) until an @EOF is encountered. For this reason, GRPREL note cards cannot be used.
GRPREL: cc 01-06 The literal 'GRPREL' stdy: cc 08-11 The study number for this run
Click here to see detailed information about this and other GRPREL control cards. The GRPREL cards are terminated by an '@eof' image.
Sample Selection Card Set
Each sample described after the GRPREL card will have a GRPREL executed. The format for these cards is described above.
The control cards are terminated by an end-of-file or an '@eof' image.
The following example for study "ssss" assumes V0003 is "Grade" coded as "E1" through "E9" and that variable V0015 is an Army MOS. Computed variable C0007 is always the number of tasks performed. Task 303 (R0303 and T0303) is simply the three hundred and third task in the inventory. V0020 is months in the service. As the input Case Data File is "cd100" this is job incumbent data, and hence, the creation of job descriptions is appropriate.
@codap memsel p ssss cd100 tf100 tt001 vt100 MEMSEL ssss L01=V0003 A E1 E4 L02=C0007 70 150 L03=V0015 A 19D 19D L04=T0303 5.00 99.99 L05=R0303 4 7 L06=V0020 18 24 @EOF GRPJOB PRT These are the note cards for the generated PRTJOB. This test uses the more typical variable types for selection. Job descriptions will be computed and printed (GRPJOB,PRTJOB). @EOF TITLE Job Incumbents in Grades E-1 through E-4 (L01) TITLE Job Incumbents with 18 to 24 months of service (L06) TITLE Job Incumbents who performed from 70 to 150 tasks (L02) TITLE Incumbents who perform Task #303 at a high level (L04:L05) TITLE E-1 to E-4 19D Incumbents who Rated Task #303 as 4-7 (L01&L03&L05) @EOF @EOF
The next run will select groups based on grade and duty AFSC (V0007 and V0013) by using the specified logic conditions. A GRPJOB runstream will follow, creating the percent time spent (PTS) and percent members performing (PMP) data for each group. A PRTJOB will then execute and print job descriptions for the groups.
The first group uses extra parentheses to combine multiple "OR" conditions prior to the "AND" with a single grade-based variable.
@codap memsel p ssss cd100 tf100 - vt100 MEMSEL ssss L01=V0007 2 3 L02=V0007 5 5 L03=V0007 6 7 L04=V0013 27131 27131 L05=V0013 27151 27151 L06=V0013 27171 27171 L07=V0013 A 271X1 271X1 L08=ST0183 @EOF GRPJOB PRT @eof TITLE 271X1 Personnel in Paygrades E-2 and E-3 only (L01&(L04:L05:L06:L07)) TITLE Grade Level E-6 & E-7 Personnel in Cluster Stage 183 (L03&L08) @eof @eof
The next example will generate a GRPREL runstream using all the defaults typical for analysis of training emphasis data. The Case Data input file of cd500 denotes training emphasis data, which means that interrater reliability (GRPREL) is the appropriate follow-on analysis, not job descriptions (GRPJOB).
@codap memsel r ssss cd500 tf500 TT001 MEMSEL ssss @EOF GRPREL ssss TITLE Training Emphasis Ratings (Raw Analysis) @EOF TITLE Full Group Analysis of Training Emphasis () @EOF
For Task Difficulty data (cd200), one would modify the above example to include RATER and VALUE cards in the GRPREL section. These would be used to invoke the rater adjustment to the sample mean and the output factor standardization to a mean of 5.0 and standard deviation of 1.0.